今天无意中看见了一个视频,说new Boolean(0) //返回是True让我疑惑不解,感觉他们在骗傻子。我去试了试真的是烧脑阔:
代码如下:
var isTrue = 0
if(new Boolean(isTrue)) {
console.log('ture');
} else {
console.log('false');
返回:
这里我建了个test.js文件做测试。
想了想以前对Boolean()的理解应该转换成 false才对。我把new 去掉后返回的确实是false。
真的有点疑惑,就去问了度娘。
搜索结果:
返回值
当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。
如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值。
注释:如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 "false")。
到这里相信大家已经知道了,很多细节问题还是需要深究一下。