gpt4 book ai didi

javascript - JavaScript 中的 boolean 对象是吗?

转载 作者:行者123 更新时间:2023-12-02 16:24:30 24 4
gpt4 key购买 nike

JavaScript 中的 boolean 对象是吗? JavaScript 中“一切皆对象”是真的吗?

最佳答案

Primitives不是对象,其他一切( any standard object )都是对象。但是,大多数原语(除了 undefinednull 之外)都有一个对应的对象。

所以

var a = false;

不是一个对象,但是

var b = new Boolean(false);

是。

由于两个对象只有引用同一个对象时才相等,因此最好避免使用基元的对象版本:

a === false; // is true
b === false // is false <- this is a problem

或者特别是对于 boolean 对象,将它们与任何 boolean 运算符一起使用将产生意外的结果。对象引用的计算结果始终为 true,因此使用 b 的结果将是:

// remember
// a is the primitive value false
// b is a boolean object with value false

// NOT
!a // true
// but
!b // false

// AND
a && true // false
// but
b && true // true

无论如何,使用这些对象版本并没有真正的优势,因为 JavaScript 是 autoboxing当您尝试调用原语方法时。这就是为什么这样调用:

var s = "HI THERE!".toLowerCase();
s = s.substring(0,2);

有可能。

关于javascript - JavaScript 中的 boolean 对象是吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com