JavaScript 邏輯

JavaScript 布爾(邏輯)代表兩個值之一:truefalse

布爾值

通常,在編程中,您會需要只能有兩個值之一的數據類型,比如

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

鑒于此,JavaScript 提供一種布爾數據類型。它只接受值 truefalse

Boolean() 函數

您可以使用 Boolean() 函數來確定表達式(或變量)是否為真:

實例

Boolean(10 > 9)        // 返回 true

親自試一試

或者甚至更簡單:

實例

(10 > 9)              // 也返回 true
10 > 9                // 也返回 true

親自試一試

比較和條件

JS 比較這一章列出了完整的比較運算符。

JS 條件這一章列出了完整的條件語句。

下面是一些例子:

運算符 描述 實例
== 等于 if (day == "Monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)

表達式的布爾值是 JavaScript 比較和條件的基礎。

所有具有“真實”值的即為 True

實例

100
3.14
-15
"Hello"
"false"
7 + 1 + 3.14
5 < 6 

親自試一試

所有不具有“真實”值的即為 False

0(零)的布爾值為 false

var x = 0;
Boolean(x);       // 返回 false

親自試一試

-0 (負零)的布爾值為 false

var x = -0;
Boolean(x);       // 返回 false

親自試一試

""(空值)的布爾值為 false

var x = "";
Boolean(x);       // 返回 false

親自試一試

undefined 的布爾值是 false

var x;
Boolean(x);       // 返回 false

親自試一試

null 的布爾值是 false

var x = null;
Boolean(x);       // 返回 false

親自試一試

false 的布爾值(正如您猜到的)是 false

var x = false;
Boolean(x);       // 返回 false

親自試一試

NaN 的布爾值是 false

var x = 10 / "H";
Boolean(x);       // 返回 false

親自試一試

布爾可以是對象

通常 JavaScript 布爾是由字面量創建的原始值:

var x = false

但是布爾也可以通過關鍵詞 new 作為對象來定義:

var y = new Boolean(false)

實例

var x = false;
var y = new Boolean(false);
// typeof x 返回 boolean
// typeof y 返回 object

親自試一試

不要創建布爾對象。它會拖慢執行速度。

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。

完整的布爾參考手冊

如需完整的參考手冊,請訪問我們的 JavaScript 布爾參考手冊

參考手冊包含有關所有布爾屬性和方法的描述和實例。