console.log(null == NaN); //false
console.log(null == undefined); //true
console.log(null == false); //false
console.log(null == ""); //false
console.log(null == ''); //false
console.log(null == 0); //false
console.log(false == NaN); //false
console.log(false == undefined); //false
console.log(false == null); //false
console.log(false == ""); //true
console.log(false == ''); //true
console.log(false == 0); //true
按理来说,这些不是都可以互相转换的吗?为什么会出现这种情况,里面的原理谁能帮忙解释一下。谢谢。
大概有以下这些情况:
1. 空字符串,0,NaN,null,undefined 都会转换为 false
2. 只有 null == undefined,和其它的都不相等
3. 空数组在判断的时候会转换为 true,但是 [] == 0,[] == false,[] == ''
4. NaN 和任何东西都不相等,包括它自己:NaN !== NaN
NaN 属性是代表非数字值的特殊值,isNaN() 全局函数来判断一个值是否是 NaN 值。
undefined一个特殊值,通常用于指示变量尚未赋值,类似于null
js中0,'',"",都有false的意思
""
null
undefined
0
当判断条件时都是false
看看 javascrpt 高级编程这本电子书吧。
你说的互相转换是什么意思?