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