JavaScript中 0==null为何是false

“123”在在算式中能隐形转换为123,所以123==“123”表现为真(true);true在在算式中能隐形转换为1,所以1==true表现为真(true);而null... “123”在在算式中能隐形转换为123,所以123==“123”表现为真(true);
true在在算式中能隐形转换为1,所以1==true表现为真(true);
而null在算式中能隐形转换为0,但0==null却表现为假(false),
这是怎么回事,为何0==null表现为false?
展开
 我来答
年少ing轻狂
推荐于2018-01-27
知道答主
回答量:1
采纳率:0%
帮助的人:890
展开全部
null代表的是对象 用typeof 运算符可以检测出来null的结果为Object类型值,null只不过在隐式转换的时候被转换成0来计算而已,但是null实际代表的是一个空对象的指针,而且undefined是由 null派生出来的, 所以二者==是真的但是===就是假的
wu1259821524
2019-01-31
知道答主
回答量:7
采纳率:0%
帮助的人:6931
展开全部
1、== 相等运算符,同类型比较时,等同于 === ,比如 1==1.0 等同 1 === 1.0
2、当不同类型比较时,先把类型转换成同一个类型,然后再执行严格相等,比如2 == true,结果是false,这个等同于 2 === Number(true),也就是2 === 1
3、至于你这个 0==null,比较特殊,null、undefined与其他类型的值比较时,结果都为false,除了自身比较是true,比如null == null ,null == undefined ,undefined == undefined,都是true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhkagxy
2016-11-16 · TA获得超过153个赞
知道答主
回答量:60
采纳率:0%
帮助的人:18.8万
展开全部
Null是没有值,0是有值的(只不过值为0),所以严格来讲是FALSE也不奇怪
更多追问追答
追问
null确实是没有值,但为何null能在隐式转换中能转换出0?
追答
这个就属于JavaScript语言设计问题了,对我们这些使用者来说不用纠结这个,应用时注意这些特殊情况,不要让它影响程序的运行就行了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-16
展开全部
0肯定跟null不一样啊,0转换为数值,是有值的,只不过值为0,而null是空,0和空可不一样。
更多追问追答
追问
按你逻辑来说,true也不是一个值,但为何true==1会表现为真呢
追答
因为1转换成布尔类型就是true啊,你再试0==false 返回也是true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式