Boolean对象是JavaScript中的吗?

Boolean对象是JavaScript中的吗?,javascript,boolean,Javascript,Boolean,Boolean对象是JavaScript中的吗?JavaScript中的“一切都是对象”是真的吗?不是对象,其他一切()都是对象。但是,大多数原语(除了undefined和null之外)都有一个对象对应物 所以 不是对象,而是 var b = new Boolean(false); 是 由于两个对象仅在引用同一个对象时才相等,因此最好避免使用基本体的对象版本: a === false; // is true b === false // is false <- this is a p

Boolean对象是JavaScript中的吗?JavaScript中的“一切都是对象”是真的吗?

不是对象,其他一切()都是对象。但是,大多数原语(除了
undefined
null
之外)都有一个对象对应物

所以

不是对象,而是

var b = new Boolean(false);

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

a === false; // is true
b === false // is false   <- this is a problem
无论如何,使用这些对象版本并没有什么真正的优势,因为当您尝试对它们调用方法时,JavaScript是基本的。这就是为什么打这样的电话:

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

是可能的。

布尔、数字和字符串都是类似对象的类型-它们有方法,但它们是不可变的。

对于Javascript语言的广泛覆盖,请查阅,实际上您永远不需要对象包装的原语。有一个目的(虽然不是很有用:)“…是将非布尔对象转换为布尔对象”@AJAX3333221:是的,您确实可以使用它进行类型转换。在这种情况下,您也可以使用双重否定,例如
!!“someString”
。同样重要的是要注意,作为函数或构造函数调用
Boolean
(以及这些函数中的任何其他函数)之间存在差异。作为函数,它们都(?)返回原始值。与已被接受的答案和+7票不一致,他继续做令人敬畏的编辑。如果每个人都像菲利克斯·弗林一样,世界可能会和平,我们可能会找到治愈世界上大多数不治之症的方法today@ajax333221:谢谢你的夸奖:)
// 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
var s = "HI THERE!".toLowerCase();
s = s.substring(0,2);