首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用布尔构造函数的类型强制和内部if之间的区别是什么

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

Stack Overflow用户
提问于 2016-06-06 02:54:47
回答 1查看 73关注 0票数 1

请参考这里的jsfiddle,https://jsfiddle.net/reuk08ob/ html:<div id="abc"></div> javascript:

代码语言: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语句中隐式执行的那样执行类型强制吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-06 03:08:37

Boolean不做类型强制,它做类型转换,这意味着类型转换是显式的,而不是隐式的。

here中,Boolean的工作原理是这样的:“如果value被省略或为0、-0、null、false、NaN、undefined或空字符串(""),则对象的初始值为false。

此外,“不要将原始布尔值true和false与布尔对象的true和false值混淆。”换句话说,布尔构造函数返回一个布尔对象,并且该布尔对象具有由上述规则确定的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37645597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档