js中的null,undefined,NaN
null是一个表示”无”的对象,转为数值时为0;
undefined是一个表示”无”的原始值,转为数值时为NaN
undefined出现情况:
var a; function b(x) { return x; } b(); var c = {} c.z; var d = function () {} var e = d()
null出现情况:
获取一个不存在的对象时
var f = document.getElementById('F');//没有这个dom时
NaN出现情况:
是数字类型
NaN === NaN // false
Object.is(NaN, NaN) // 如果是引用类型就要看内存指向是否一致
// OR
function is(x, y) {
if(x === y) {//
// 解决+0===-0为true的情况
return x !== 0 || y !== 0 || 1 / x === 1 / y;
} else {// 如果自身都不等你与自己那就是NaN
return x !== x && y !== y;
}
}
1. 被0除
2. 不合法的字符串转换成数值
var s = '222bb';
s++;//NaN
3. 数值过大。

浙公网安备 33010602011771号