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