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? 展开
true在在算式中能隐形转换为1,所以1==true表现为真(true);
而null在算式中能隐形转换为0,但0==null却表现为假(false),
这是怎么回事,为何0==null表现为false? 展开
4个回答
展开全部
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
2、当不同类型比较时,先把类型转换成同一个类型,然后再执行严格相等,比如2 == true,结果是false,这个等同于 2 === Number(true),也就是2 === 1
3、至于你这个 0==null,比较特殊,null、undefined与其他类型的值比较时,结果都为false,除了自身比较是true,比如null == null ,null == undefined ,undefined == undefined,都是true
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询