JavaScript 逻辑

javascript 逻辑

javascript 布尔(逻辑)代表两个值之一:truefalse

 

1. 布尔值

通常,在编程中,您会需要只能有两个值之一的数据类型,比如

  • yes / no
  • on / off
  • true / false

鉴于此,javascript 提供一种布尔数据类型。它只接受值 true 或 false。

 

2. boolean() 函数

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

范例

boolean(10 > 9)        // 返回 true

或者甚至更简单:

范例

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

 

3. 比较和条件

js 比较这一章列出了完整的比较运算符。

js 条件这一章列出了完整的条件语句。

下面是一些例子:

运算符 描述 范例
== 等于 if (day == "monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)

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

 

4. 所有具有“真实”值的即为 true

范例

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

 

5. 所有不具有“真实”值的即为 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

 

6. 布尔可以是对象

通常 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。

下一节:js 比较和逻辑运算符

js 教程

相关文章