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 @   默然晴天  阅读(2579)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示