js中为什么'0'为true而'0' == false 为真?

在JavaScript中,为假的值只有六个,分别为:false,null,undefined,NaN,0 和 '',

但是为什么 '0' == false 又为真呢?

这是因为在js中 == 两边是会进行类型转换的,当 '0' 与 false 做==比较时,两边都会先转换为number类型,然后再比较,即:

'0' == false  转换为  0 == 0,所以结果为真

总结一下js中 == 的类型转换

1.number类型优先级最高

当 == 两边有 number 类型时,其他类型都需要转换成number类型,然后再做 == 比较。undefined,null永远不做类型转换。

特例:NaN的类型是number,但是它不等于任何值,包括自己

示例如下:

2.boolean与其他类型

当 == 两边至少有一个类型为 boolean时,则 boolean 转换为number,另外一个也转换为number,再进行比较

 示例如下:

 

posted @ 2022-12-03 01:04  默然晴天  阅读(2458)  评论(0编辑  收藏  举报