为了账号安全,请及时绑定邮箱和手机立即绑定

为什么!新的布尔值(false)在JavaScript中等于false?

为什么!新的布尔值(false)在JavaScript中等于false?

幕布斯7119047 2019-09-06 15:46:06
从JavaScript类型的jQuery文档中可以看到这段代码描述转换为布尔值时字符串的行为(该主题与此问题无关,但它只是我找到代码的地方):!"" // true!"hello" // false!"true" // false!new Boolean(false) // false我得到前三个例子,但我没有得到最后一个例子,因为:new Boolean(false) == false //true!false // true所以我假设:!new Boolean(false) // true但反而:!new Boolean(false) // false, mind = blown这是什么我甚至不...是因为:new Boolean(false) === false // false如果是这样,它的用途是什么?
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

new Boolean(false)返回一个非null 的对象。非null对象总是真实的。


因此,!任何非null对象都将始终为false。


要向自己证明,可以在javascript控制台中运行它


(typeof new Boolean(false))  //"object"

此外,您可以使用strict equality运算符确认new Boolean(false)不是真的false:


new Boolean(false) === false  // false

顺便说一句,将Boolean函数作为函数调用- 没有new - 实际上会返回一个原语


!Boolean(false) // true


(typeof Boolean(false))  //"boolean"


查看完整回答
反对 回复 2019-09-06
  • 2 回答
  • 0 关注
  • 913 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信