关于JS中false类型转换判断的问题

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

按理来说,这些不是都可以互相转换的吗?为什么会出现这种情况,里面的原理谁能帮忙解释一下。谢谢。
Qyouu
浏览 453回答 5
5回答

杨__羊羊

大概有以下这些情况: 1. 空字符串,0,NaN,null,undefined 都会转换为 false 2. 只有 null == undefined,和其它的都不相等 3. 空数组在判断的时候会转换为 true,但是 [] == 0,[] == false,[] == '' 4. NaN 和任何东西都不相等,包括它自己:NaN !== NaN

幕布斯7119047

NaN 属性是代表非数字值的特殊值,isNaN() 全局函数来判断一个值是否是 NaN 值。 undefined一个特殊值,通常用于指示变量尚未赋值,类似于null js中0,'',"",都有false的意思

翻阅古今

"" null undefined 0 当判断条件时都是false

慕容708150

看看 javascrpt 高级编程这本电子书吧。

MMTTMM

你说的互相转换是什么意思?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript