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. 数值过大。
posted @ 2019-10-25 19:47  to_Matthew  阅读(211)  评论(0编辑  收藏  举报