1. JS运算符:包括算数运算符,递增运算符,比较运算符,逻辑运算符,赋值运算符,运算符优先级大致与C语言中一致
  2. JS中判断语句:包括if,if…else.,switch语句于C语言中一致
  3. JS中循环语句:包括for,while,do while语句与C语言中一致
  4. JS中数组的索引(下标),数组元素的获取遍历数组冒泡排序与C语言中一致
  5. 断点调试JS知识点大杂烩_全局变量
  6. 标识符命名规范: 变量,函数的命名必须要有意义;变量名称一般用名词;函数名称一般用动词
  7. 全局变量:在全局作用域下声明的变量或在函数中没有声明但赋值的变量
    局部变量:在局部作用域下的声明的变量
    注意:函数中可以直接使用全局变量

//函数内声明的a的变化不会影响全局变量a的值
var a = 10;
console.log(a); //10

function fun() {
var a = 20;
console.log(a); //20
}
fun();
console.log(a); //10

//函数内可直接使用全局变量,且可以对全局变量赋新值
function fun2() {
a = 20;
console.log(a); //20
}
fun2();
console.log(a); //20
  1. js引擎运行分为两步:预解析和代码执行
    预解析:js引擎会把js里的所有var和function提升到当前作用域的最前面
    代码执行:预解析后从前往后执行代码
    预解析分为变量预解析(变量提升)和函数预解析(函数提升)

  • 变量提升:把所有的变量声明提升到当前作用域最前面,不提升赋值操作
  • 函数提升:把所有的函数声明提升到当前作用域最前面,不调用函数

f1();
console.log(c);
console.log(b);
console.log(a);
function f1(){
var a=b=c=9; //只有a前有var,并不是同时声明多个变量,声明多个变量需要用逗号分隔
console.log(a);
console.log(b);
console.log(c);
}
//上述代码相当于执行了下列代码
function f1(){
var a;
a=9;
b=9; //b和c在函数内赋值未声明,所以为全局变量
c=9
console.log(a); //9
console.log(b); //9
console.log(c); //9
}
f1();
console.log(c); //9
console.log(b); //9
console.log(a); //因为全局变量没有a所以报错


使用​​console.dir(对象名);​​ 可以打印我们返回的元素对象 更好的查看里面的属性和方法



this指向的是事件函数的调用者



onfocus获得鼠标焦点触发,即鼠标光标到指定位置时触发
onblur失去鼠标焦点触发,即鼠标光标移出指定位置时触发​​​​




focus()可以是光标自动定位到目标上
​input.focus();​​使光标定位到input上




input 使用value.length可以获得input中输入数的长度



innerHTML 属性用于获取或替换 HTML 元素的内容
语法:Object.innerHTML



想要某个表单(按钮)被禁用不能再点击,可用disabled:令btn.disabled=true 则btn就被禁用了



mousemove鼠标移动事件



dpr物理像素比
window.devicePixelRatio可以获得物理像素比



手动调用事件:
a.click(); 代码可以调用a的点击事件,前提是a已经注册过点击事件,手动调用其他事件同理



通过在响应函数结尾返回false,可以阻止冒泡:return false;



声明变量时,除ver外 还有let定义变量,const定义常量
ES6指出ver有很多缺陷(不具有作用域,全局的,而let有作用域),所有尽量不要用ver了



Math.random()
JavaScript中定义了0到1之间的随机数,包括0,但不包括1。