JavaScript提供了一个布尔原始类型,它有true和false两个值。你可以使用typeof运算符变量的类型,保存布尔值的变量,返回值是boolean。
除了原始类型boolean之外,JavaScript还为您提供了全局Boolean()函数,可以使用Boolean()函数将另一个类型的值转换为布尔值。
Boolean也是原始类型boolean的封装对象。这意味着当您将其中一个true或false传递给Boolean构造函数时,它将创建一个Boolean对象。
下面的示例演示如何使用Boolean()函数将字符串转换为布尔值。因为字符串不为空,所以返回true。
let a = Boolean('Hi');
console.log(a); // true
console.log(typeof(a)); // boolean
要Boolean对象的原始值,请调用Boolean对象的valueOf()方法。valueOf()方法将会Boolean对象转换后的返回的值。
如果你调用Boolean对象的toString(),你会得到一个字符串值"true"或"false"。
let b = new Boolean(false);
console.log(b.valueOf()); // false
console.log(b.toString()); // "false"
Boolean是Javascript的一个对象,因此您可以向其添加属性。boolean是原始类型,通常表示一个值,你不能向其添加属性。
其次,当你使用typeof运算符对布尔值获取类型时,原始布尔值返回boolean。布尔对象则返回object。
第三,将instanceof运算符应用于Boolean对象时,它返回true。但是,如果您将 instanceof运算符应用于布尔值boolean,它会返回false。
let completed = true;
let active = new Boolean(false);
active.primitiveValue = active.valueOf();
console.log(active.primitiveValue); // false
completed.name = 'primitive';
console.log(completed.name); // undefined
console.log(completed instanceof Boolean); // false
console.log(active instanceof Boolean); // true
最好不要使用Boolean对象,因为它会造成很多混乱,尤其是在表达式中使用时。
let falseObj = new Boolean(false);
if (falseObj) {
console.log('weird part of the Boolean object');
}
这里说一下代码是怎么工作的,首先,创建变量falseObj,它的值是Boolean对象封装的false。
变量falseObj在if语句中使用时。因为falseObj是一个对象,JavaScript引擎将其强制转换为true.。结果,if块内的语句被执行。
建议您使用Boolean()函数将不同类型的值转换为布尔值,但不要将原始布尔值使用Boolean对象封装。
在本教程中,您了解了JavaScript Boolean对象和原始类型boolean之间的区别。
全部0条评论
快来发表一下你的评论吧 !