当前位置:嗨网首页>书籍在线阅读

12-非布尔值的逻辑运算符

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.8.2 非布尔值的逻辑运算符

如果使用布尔值做逻辑运算,结果只能为布尔值。如果使用非布尔值,能够确定结果的那个值就是逻辑运算的结果,如下表5-5和表5-6。

表5-5  非布尔值的真值表“与”(&&)

| x | y | x && y | | :----- | :----- | :----- | :----- | :----- | | falsy | falsy | x(falsy) | | falsy | truthy | x(falsy) | | truthy | falsy | y (falsy) | | truthy | truthy | y(truthy) |

表5-6  非布尔值的真值表“或”(||)

| x | y | x || y | | :----- | :----- | :----- | :----- | :----- | | falsy | falsy | y (falsy) | | falsy | truthy | y(truthy) | | truthy | falsy | x(truthy) | | truthy | truthy | x(truthy) |

注意,如果将结果转换成布尔值,转换后的结果与在布尔值上使用与和或的结果一致。逻辑运算符的操作中可以用一些“快捷方式”。下面就是一个很常见的例子:

const options = suppliedOptions || { name: "Default" }

记住,对象(即便是空对象)的值永远为真。所以如果 suppliedOptions 是一个对象, options 将引用 suppliedOptions 。如果没有任何类型,在这种情况下, suppliedOptions 值将为 nullundefinedoptions 也会有一个默认值。

在使用非的时候,没有理由不返回一个布尔值,所以非运算符(!)永远返回布尔值,不管操作数是什么。如果操作数是真,则返回false,反之返回true。