二维码

JavaScript 布尔值

JavaScript 布尔值

JavaScript 布尔值表示以下两个值之一:true 或 false

布尔值

很多时候,在编程中,您需要一个只能有一个数据类型 两个值,例如

  • YES / NO
  • ON / OFF
  • TRUE / FALSE

为此,JavaScript 具有布尔数据类型。它只能 取值 true 或 false


Boolean() 函数

您可以使用 Boolean() 函数来确定表达式(或变量)是否为 true:

1
Boolean(10 > 9)

甚至更容易:

1
2
(10 > 9)  
10 > 9


比较和条件

[JS]比较一章对比较运算符进行了全面概述。

[JS If Else]一章对条件语句进行了全面概述。

以下是一些示例:

运算符 概述 样例
== 等于 if (day == "Monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)

表达式的布尔值是所有 JavaScript 比较和条件的基础。


一切有“价值”的东西都是真实的

1
2
3
4
5
6
7
8
9
10
11
100  

3.14

-15

"Hello"

"false"

7 + 1 + 3.14


没有“值”的一切都是假的

布尔值 0(零)为 false

1
2
let x = 0;  
Boolean(x);

布尔值 -0(减去零)为 false

1
2
let x = -0;  
Boolean(x);

“”(空字符串)的布尔值为 false

1
2
let x = "";  
Boolean(x);

undefined 的布尔值为 false

1
2
let x;  
Boolean(x);

null 的布尔值为 false

1
2
let x = null;  
Boolean(x);

false 的布尔值是(你猜对了)false

1
2
let x = false;  
Boolean(x);

NaN 的布尔值为 false

1
2
let x = 10 / "Hallo";  
Boolean(x);


JavaScript 布尔值作为对象

通常,JavaScript 布尔值是从文字创建的原始值:

1
let x = false;

但布尔值也可以用关键字 new 定义为对象:

1
let y = new Boolean(false);
1
2
3
4
5
let x = false;  
let y = new Boolean(false);

// typeof x returns boolean
// typeof y returns object

不要创建布尔对象。

new关键字使代码复杂化并减慢执行速度。

布尔对象可能会产生意外结果:

当使用 == 运算符时x和y相等:

1
2
let x = false;  
let y = new Boolean(false);

使用 === 运算符时,x 和 y 不相等:

1
2
let x = false;  
let y = new Boolean(false);

注意 (x==y) 和 (x===y) 之间的差异。

:(x == y)对还是错?
1
2
let x = new Boolean(false);  
let y = new Boolean(false);

:(x === y)对还是错?
1
2
let x = new Boolean(false);  
let y = new Boolean(false);

比较两个 JavaScript 对象总是返回 false