js变量提升
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。变量可以在使用后声明
也可以先使用再声明。只有声明的变量会提升,初始化的不会。也就是说,未赋值的变量,提升为undefined。
常见js使用误区
- switch 语句会使用恒等计算符(===)进行比较:
var x = 10;
switch(x) {
case "10": alert("Hello");
}
此处不执行弹窗,类型与值都相等才匹配成功。
- 特别注意浮点型数据;
var x = 0.1;
var y = 0.2;
var z = x + y // z 的结果为 0.30000000000000004
if (z == 0.3) // 返回 false
- 字符串断行需要使用反斜杠(),如下所示:
var x = "Hello \
World!";
- 定义数组中最后一个值,不能加,逗号
会导致数组长度为i或者i+1;
-
定义对象中 key, value最后不能添加逗号,
-
undefined不是null
null用于对象 undefined用于变量属性和方法 对象只有被定义才可能为null,否则为undefined
-
数组使用数字来索引
var person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
var x = person.length; // person.length 返回 3
var y = person[0]; // person[0] 返回 "John"
- 对象使用名字来索引
var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
var x = person.length; // person.length 返回 0
var y = person[0]; // person[0] 返回 undefined
如果使用名字作为索引,数组会被重定义为对象。