为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2018-12-06 13:28:45
console.log(null == NaN); //falseconsole.log(null == undefined); //trueconsole.log(null == false); //falseconsole.log(null == ""); //falseconsole.log(null == ''); //falseconsole.log(null == 0); //falseconsole.log(false == NaN); //falseconsole.log(false == undefined); //falseconsole.log(false == null); //falseconsole.log(false == ""); //trueconsole.log(false == ''); //trueconsole.log(false == 0); //true按理来说,这些不是都可以互相转换的吗?为什么会出现这种情况,里面的原理谁能帮忙解释一下。谢谢。
查看完整描述

5 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

大概有以下这些情况:

1. 空字符串,0,NaN,null,undefined 都会转换为 false

2. 只有 null == undefined,和其它的都不相等

3. 空数组在判断的时候会转换为 true,但是 [] == 0,[] == false,[] == ''

4. NaN 和任何东西都不相等,包括它自己:NaN !== NaN

查看完整回答
反对 回复 2018-12-24
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

NaN 属性是代表非数字值的特殊值,isNaN() 全局函数来判断一个值是否是 NaN 值。

undefined一个特殊值,通常用于指示变量尚未赋值,类似于null

js中0,'',"",都有false的意思

查看完整回答
反对 回复 2018-12-24
?
翻阅古今

TA贡献1780条经验 获得超5个赞

""

null

undefined

0

当判断条件时都是false

查看完整回答
反对 回复 2018-12-24
?
慕容708150

TA贡献1831条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-12-24
?
MMTTMM

TA贡献1869条经验 获得超4个赞

你说的互相转换是什么意思?

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信