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,再进行比较
示例如下:
作者: 默然晴天 博客地址:http://www.cnblogs.com/bryanfu/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(fukangkobe@163.com)咨询.