请参考这里的jsfiddle,https://jsfiddle.net/reuk08ob/ html:<div id="abc"></div> javascript:
if(null==false){
document.getElementById("abc").innerHTML="hello, null == true coerced";
}else if(Boolean(null)==false ){
document.getElementById("abc").innerHTML="hello, boolean constructor coercion worked! previous one did not,strange, both should do the same, shouldn't they?";
}我是不是漏掉了什么?布尔构造函数不应该像if语句中隐式执行的那样执行类型强制吗?
发布于 2016-06-06 03:08:37
Boolean不做类型强制,它做类型转换,这意味着类型转换是显式的,而不是隐式的。
在here中,Boolean的工作原理是这样的:“如果value被省略或为0、-0、null、false、NaN、undefined或空字符串(""),则对象的初始值为false。
此外,“不要将原始布尔值true和false与布尔对象的true和false值混淆。”换句话说,布尔构造函数返回一个布尔对象,并且该布尔对象具有由上述规则确定的值。
https://stackoverflow.com/questions/37645597
复制相似问题