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 ブールリファレンスマニュアル

リファレンスマニュアルにはすべてのブール属性とメソッドの説明と例が含まれています。