JavaScript 邏輯
JavaScript 布爾(邏輯)代表兩個值之一:true
或 false
。
布爾值
通常,在編程中,您會需要只能有兩個值之一的數據類型,比如
- YES / NO
- ON / OFF
- TRUE / FALSE
鑒于此,JavaScript 提供一種布爾數據類型。它只接受值 true 或 false。
Boolean() 函數
您可以使用 Boolean()
函數來確定表達式(或變量)是否為真:
實例
Boolean(10 > 9) // 返回 true
或者甚至更簡單:
實例
(10 > 9) // 也返回 true 10 > 9 // 也返回 true
比較和條件
JS 比較這一章列出了完整的比較運算符。
JS 條件這一章列出了完整的條件語句。
下面是一些例子:
運算符 | 描述 | 實例 |
---|---|---|
== | 等于 | if (day == "Monday") |
> | 大于 | if (salary > 9000) |
< | 小于 | if (age < 18) |
表達式的布爾值是 JavaScript 比較和條件的基礎。
所有不具有“真實”值的即為 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。