详解js中的undefined、NaN、null

js中三大特殊的值:

  • undefined
  • NaN
  • null

1.undefined

变量声明了但为赋值

console.log(typeof undefined);	//undefined
console.log(undefined);			//undefined
var a;
console.log(a);					//undefined

参与运算时,得到NaN

console.log( 1 + undefined);		//NaN

比较时被转换成NaN

console.log(undefined == 0);		//false
console.log(undefined == 1);		//false
console.log(undefined == true);		//false
console.log(undefined == false);	//false

2.NaN

不是一个数字的数值型数据

console.log(typeof NaN);	//number 
console.log(NaN);			//NaN

参与运算时,得到NaN

console.log(1 + NaN);		//NaN

NaN和任何数值都不相等,包括他自己

console.log(NaN == NaN);	//false
console.log(NaN == 0);		//false
console.log(NaN == 1);		//false
console.log(NaN == true);	//false
console.log(NaN == false);	//false

3.null

空的状态

console.log(typeof null);	//object
console.log(null);			//null

参与运算时被转成0

console.log(1 + null);		//1

比较时被转换成NaN

console.log(null == 0);		//false
console.log(null == 1);		//false
console.log(null == true);	//false
console.log(null == false);	//false

总结:

console.log(undefined == NaN);      // false
console.log(null == NaN);           // false
console.log(null === undefined);    // false
console.log(null == undefined);     // true
发布了6 篇原创文章 · 获赞 41 · 访问量 193

猜你喜欢

转载自blog.csdn.net/anr_safely/article/details/105468566