JavaScript之易错点

1. 易错点一

1
2
null == undefined     //true
null === undefined //false

undefined与null相等,但不恒等(===);
null的类型是对象,undified的类型是undified;

2. 易错点二

1
0.1 + 0.2 == 0.3  //false

为什么0.1 + 0.2 不等于0.3。因为计算机不能精确表示0.1, 0.2这样的浮点数,计算时使用的是带有舍入误差的数。

3. 易错点三

数组去重
要求:
1.给Array本地对象增加一个原型方法
2.它用于删除数组条目中重复的条目(可能有多个)
3.返回值是一个包含被删除的重复条目的新数组
代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var x = ['a','b','c','d','b','a','e'];
Array.prototype.distinct = function(){
var ret = [];
for(var i = 0 ; i < this.length ; i++){
for(var j = i + 1 ; j < this.length ; ){
if(this[i] === this[j]){
ret.push(this.splice(j,1)[0]);
}else{
j++;
}
}
}
return ret;
};
var y = x.distinct();