在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,再进行比较
示例如下:
标签:类型转换,false,number,js,boolean,类型,true From: https://www.cnblogs.com/bryanfu/p/16911189.html