1.5 布尔值

原始布尔类型包含true和false两个值。以下运算符会产生布尔值。

二元逻辑运算符:&&(与), || (或)。
前置逻辑运算符:! (非)。
比较运算符。

相等运算符:===、!==、==、!=。

排序运算符(针对字符串及数字):>,>=,<,<=。

1.5.1 真值与假值
在JavaScript中,可以使用任意值来表示布尔值(如作为if语句的条件)。它们都会被解释成true或false。以下的值会被解释成false。

undefined、null。
布尔值:false。
数字:-0、NaN。
字符串:' '。
其他所有的值(包括所有的对象)都会被当成true。被解释为false的值可被称为假值,被解释为true的值可被称为真值。Boolean()作为函数调用时,会将传入的参数转换为一个布尔值。可以用它来测试看看一个值是如何被解释的:

 

android 设置布尔值改变的回调函数 布尔值怎么定义_ViewUI

1.5.2 二元逻辑运算符
JavaScript中的二元逻辑运算符是短路的。因为如果第一个运算数就足以确定结果的话,则不会对第二个运算数做评估。例如,以下表达式,其中的foo()函数永远不会被调用:

android 设置布尔值改变的回调函数 布尔值怎么定义_逻辑运算符_02

此外,二元逻辑运算符会返回运算数中的一个——可能是一个布尔值,也可能不是。对真假的检查将用于确定返回哪一个。

(1)与(&&)

如果第一个运算数是假值,返回它。否则,返回第二个运算数。

  

android 设置布尔值改变的回调函数 布尔值怎么定义_ViewUI_03

(2)或(||)

如果第一个运算数是真值,返回它。否则,返回第二个运算数。

  

android 设置布尔值改变的回调函数 布尔值怎么定义_ViewUI_04

1.5.3 等式运算符
JavaScript有两种类型的相等。

常规的,或“宽松的”相等(或不相等):== 和 !=。
严格的相等(或不相等):=== 和 !==。
常规相等,更多考虑值是否相等(详细解释参见9.3.2“普通(宽松)相等(==,!=)”),这种方式可以隐藏一些bug。因此,推荐使用严格相等。