javascript 邏輯
javascript 布爾(邏輯)代表兩個(gè)值之一:true 或 false。
1. 布爾值
通常,在編程中,您會(huì)需要只能有兩個(gè)值之一的數(shù)據(jù)類型,比如
- yes / no
- on / off
- true / false
鑒于此,javascript 提供一種布爾數(shù)據(jù)類型。它只接受值 true 或 false。
2. boolean() 函數(shù)
您可以使用 boolean() 函數(shù)來確定表達(dá)式(或變量)是否為真:
范例
boolean(10 > 9) // 返回 true
或者甚至更簡(jiǎn)單:
范例
(10 > 9) // 也返回 true 10 > 9 // 也返回 true
3. 比較和條件
js 比較這一章列出了完整的比較運(yùn)算符。
js 條件這一章列出了完整的條件語句。
下面是一些例子:
運(yùn)算符 | 描述 | 范例 |
---|---|---|
== | 等于 | if (day == "monday") |
> | 大于 | if (salary > 9000) |
< | 小于 | if (age < 18) |
表達(dá)式的布爾值是 javascript 比較和條件的基礎(chǔ)。
4. 所有具有“真實(shí)”值的即為 true
范例
100 3.14 -15 "hello" "false" 7 + 1 + 3.14 5 < 6
5. 所有不具有“真實(shí)”值的即為 false
0(零)的布爾值為 false:
var x = 0;
boolean(x); // 返回 false
-0 (負(fù)零)的布爾值為 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
6. 布爾可以是對(duì)象
通常 javascript 布爾是由字面量創(chuàng)建的原始值:
var x = false
但是布爾也可以通過關(guān)鍵詞 new 作為對(duì)象來定義:
var y = new boolean(false)
范例
var x = false; var y = new boolean(false); // typeof x 返回 boolean // typeof y 返回 object
不要?jiǎng)?chuàng)建布爾對(duì)象。它會(huì)拖慢執(zhí)行速度。
new 關(guān)鍵詞會(huì)使代碼復(fù)雜化,并產(chǎn)生某些意想不到的結(jié)果:
當(dāng)使用 == 運(yùn)算符時(shí),相等的布爾是相等的:
范例
var x = false;
var y = new boolean(false);
// (x == y) 為 true,因?yàn)?x 和 y 擁有相等的值
當(dāng)使用 === 運(yùn)算符時(shí),相等的布爾是不相等的,因?yàn)?=== 運(yùn)算符需要在類型和值兩方面同時(shí)相等。
范例
var x = false;
var y = new boolean(false);
// (x === y) 為 false,因?yàn)?x 和 y 的類型不同
或者甚至更糟。對(duì)象無法進(jìn)行比較:
范例
var x = new boolean(false);
var y = new boolean(false);
// (x == y) 為 false,因?yàn)閷?duì)象無法比較
比較兩個(gè) javascript 對(duì)象將始終返回 false。