JavaScript 常见使用误区,都是平时开发过程中填过的一些坑,整理记录下。
比较运算符常见错误
x = 10 y = "10" (x == y)
x = 10 y = "10" (x === y)
x = 10 10: alert("Hello"以下实例由于类型不一致不会执行 alert 弹窗:
<span style="color: #0000ff;">var x = <span style="color: #ff0000;">10<span style="color: #000000;">;//这里是数字,不是字符串
<span style="color: #0000ff;">switch<span style="color: #000000;">(x) {
<span style="color: #0000ff;">case <span style="color: #ff0000;">"10": alert("Hello"<span style="color: #000000;">);//case要求是字符串"10"
}
<span style="color: #0000ff;">var x = <span style="color: #ff0000;">10<span style="color: #000000;">;//这里是数字,不是字符串
<span style="color: #0000ff;">switch<span style="color: #000000;">(x) {
<span style="color: #0000ff;">case <span style="color: #ff0000;">"10": alert("Hello"<span style="color: #000000;">);//case要求是字符串"10"
}
浮点型数据使用注意事项(精度问题)
JavaScript 中的所有数据都是以 64 位浮点型数据(float) 来存储。
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定:
以下是问题代码:
x = 0.1 y = 0.2 z = x + y
(z == 0.3)
z = (x * 10 + y * 10) / 10;
JavaScript 字符串分行
var x =
"Hello World!";
var x = "";
字符窜断行的方法:字符串断行需要使用反斜杠(\)
x = "
World!";
Return 语句使用注意事项
遇到return也会结束
= 10;
a *
要点:不用对 return 语句进行断行。
避免在数组中使用名字来索引
avaScript 不支持使用名字来索引数组,只允许使用数字索引。
以下是正确用法
person =0] = "John"1] = "Doe"2] = 46 x = person.length;
y = person[0];
在 JavaScript 中, 对象 使用 名字作为索引。
person ="firstName"] = "John""lastName"] = "Doe""age"] = 46 x = person.length;
y = person[0];
Undefined 不是 Null,对象只有被定义才可能是Null,否则为undefined
对象只有被定义才有可能为 null,否则为 undefined。
如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。
错误的使用方式:
(myObj !== && myObj !== "undefined")
( myObj !== "undefined" && myObj !== )