js中 字符串'0'到底是true 还是 false 呢?
先看一张图(谷歌浏览器控制台)
那么问题来了, 为什么 ‘0’ == false 返回的值为 true 却能进入 if 判断里面
0 == false
'0' == false
if(0){ // 这个循环无法进入 因为 0 == false
console.log('数字')
}
if('0'){ // 这个循环可以进入 因为 '0' == true
console.log('字符串')
}
首先 == 做比较是会被转换为同类型然后再做比较的
0 == false :boolean 转换 为 0 所以 0 == false
‘0’ == false : boolean 转换 为 0 ,并且 ‘0’ 也转换为 0 所以 ‘0’ == false
字符串 转 boolean : ‘’ == false ,其他容易字符串都为 true