Javascript常见使用误区
1)比较运算符:
var x = 0;
if (x = 10) // true
if (x = 0) // falsevar x = 10;
var y = "10";
if (x == y) // true
if (x === y) // false 恒等计算符,同时检查表达式的值与类型var x = 10;
switch(x) { //执行case 10: alert("Hello");case "10": alert("Hello"); // 类型不一致不会执行
}
- 加法与连接:
var x = 10 + 5; // x 的结果为 15
var x = 10 + "5"; // x 的结果为 "105"
3)浮点型数据
var x = 0.1;
var y = 0.2;
var z = x + y // z 的结果为 0.30000000000000004
if (z == 0.3) // 返回 false
为解决以上问题,可以用整数的乘除法来解决:
var z = (x * 10 + y * 10) / 10; // z 的结果为 0.3
4) 字符串分行: 直接使用回车换行是会报错的
需要使用反斜杠(\)
var x = "Hello \
World!";
5) 定义数组、对象元素,最后不能添加逗号
var colors = [5, 6, 7,]; //这样数组的长度可能为3 也可能为4。
websites = {site:"菜鸟教程", url:"www.runoob.com", like:460,}
6) Undefined 不是 Null
在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。
对象只有被定义才有可能为 null,否则为 undefined。
我们想测试对象是否存在
if (myObj !== null && typeof myObj !== "undefined") // 错误的使用
if (typeof myObj !== "undefined" && myObj !== null) //正确