英文 | https://www.javascripttutorial.net/
译文 | 杨小爱
在上节中,我们学习了JavaScript Number,错过的小伙伴可以点击文章《【JavaScript 教程】第二章基础知识04—JavaScript Number》进行学习。
那么,在今天的教程中,我们将一起来学习了解 JavaScript 布尔对象以及布尔对象与布尔基本类型之间的区别。
JavaScript 布尔原始类型
JavaScript 提供了一个布尔基元类型,它有两个值 true 和 false。以下示例声明了两个保存布尔值 false 和 true 的变量:
代码语言:JavaScript ( javascript )
当您将 typeof 运算符应用于保存原始布尔值的变量时,您将获得如下示例所示的布尔值:
JavaScript 布尔对象
除了 boolean 原始类型,JavaScript 还为您提供了全局 Boolean() 函数,其中字母 B 为大写,用于将另一种类型的值转换为 boolean。
以下示例显示如何使用 Boolean() 函数将字符串转换为布尔值。因为字符串不为空,所以它返回真。
Boolean 也是 boolean 原始类型的包装对象。这意味着当您将 true 或 false 传递到 Boolean 构造函数时,它将创建一个 Boolean 对象。例如:
要取回原始值,请调用布尔对象的 valueOf() 方法,如下所示:
但是,如果调用 Boolean 对象的 toString() 方法,则会得到字符串值“true”或“false”。例如:
JavaScript 布尔值与布尔值
考虑这个例子:
首先, active 是一个对象,因此您可以向 bar 对象添加一个属性:
但是,您不能使用像完成的变量这样的原始布尔变量来做到这一点:
其次,布尔对象的 typeof 返回对象,而原始布尔值的 typeof 返回布尔值。
第三,当将 instanceof 运算符应用于布尔对象时,它返回 true。但是,如果将 instanceof 运算符应用于布尔值,它会返回 false。
最好,不要使用 Boolean 对象,因为它会造成很多混淆,尤其是在表达式中使用时。例如:
脚本如何工作?
首先,创建 falseObj 作为 false 值的布尔对象包装器。
其次,在 if 语句中使用 falseObj。因为 falseObj 是一个对象,JavaScript 引擎将它强制转换为布尔值 true。因此,执行 if 块内的语句。
下表总结了 JavaScript Boolean 和 boolean 之间的差异:
建议您使用 Boolean() 函数将不同类型的值转换为 Boolean 类型,但永远不要将 Boolean 用作原始布尔值的包装对象。
在本教程中,您了解了 JavaScript 布尔对象以及布尔对象和布尔基本类型之间的区别。