JavaScript 布尔(逻辑)代表两个值之一:true 或 false。
通常,在编程中,会需要只能有两个值之一的数据类型,比如
鉴于此,JavaScript 提供一种布尔数据类型。它只接受值 true 或 false。
可以使用 Boolean() 函数来确定表达式(或变量)是否为真:
Boolean(10 > 9) // 返回 true

或者甚至更简单:
(10 > 9) // 也返回 true
10 > 9 // 也返回 true


表达式的布尔值是 JavaScript 比较和条件的基础。
100
3.14
-15
"Hello"
"false"
7 + 1 + 3.14
5 < 6
*0(零)*的布尔值为 false:

*-0 (负零)*的布尔值为 false:

*“”(空值)*的布尔值为 false:

undefined 的布尔值是 false:

null 的布尔值是 false:

false 的布尔值是 false:

NaN 的布尔值是 false:

通常 JavaScript 布尔是由字面量创建的原始值:
var x = false
布尔也可以通过关键词 new 作为对象来定义:
var y = new Boolean(false)
不要创建布尔对象。它会拖慢执行速度。
new 关键词会使代码复杂化,并产生某些意想不到的结果:
当使用 == 运算符时,相等的布尔是相等的:
var x = false;
var y = new Boolean(false);
// (x == y) 为 true,因为 x 和 y 拥有相等的值
当使用 === 运算符时,相等的布尔是不相等的,因为 === 运算符需要在类型和值两方面同时相等。
var x = false;
var y = new Boolean(false);
// (x === y) 为 false,因为 x 和 y 的类型不同
或者甚至更糟。对象无法进行比较:
var x = new Boolean(false);
var y = new Boolean(false);
// (x == y) 为 false,因为对象无法比较
比较两个 JavaScript 对象将始终返回 false。