使用布尔构造函数和内部if的类型强制之间有什么区别

时间:2016-06-05 18:54:47

标签: javascript type-coercion

请参考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语句中隐式执行的相同的强制吗?

1 个答案:

答案 0 :(得分:2)

df %>% group_by(HouseholdID) %>% mutate(under_18 = ifelse(any(Age < 18), 'Y', 'N')) 没有输入强制类型,它会输入 conversion ,这意味着类型转换是显式的而不是隐式的。

here开始,布尔的工作原理如下:&#34;如果省略值或者是0,-0,null,false,NaN,undefined或空字符串(&#34;&#34) ;),该对象的初始值为false。&#34;

此外,&#34;不要将原始布尔值true和false与布尔对象的true和false值混淆。&#34;。换句话说,布尔构造函数返回一个Boolean对象,而Boolean对象的值由上述规则确定。