布尔(Booleans)
2018-06-15 17:38 更新
布尔类型原始值包括true
和false
。下面的操作符产生布尔值:
- 二元逻辑运算符:
&&
(与),
(或) - 前缀逻辑运算符:
!
(非) - 等值运算符:
=== !== == !=
- 比较运算符(字符串或数字):
> >= < <=
真值和假值(Truthy and falsy)
每当JavaScript希望一个布尔值时(例如:if
语句的条件),可以使用任何值。它将被理解(转换)为true
或false
。下面的值被理解为false
:
undefined
,null
- 布尔:
false
- 数字:
-0
,NaN
- 字符串:
‘’
所有其他值被认为true。被理解为false的值称为假值(falsy
),被理解为true的值称为真值(truthy
)。可以使用Boolean作为函数,测试值被理解为什么。
> Boolean(undefined)
false
> Boolean(0)
false
> Boolean(3)
true
二元逻辑运算符(Binary logical operators)
JavaScript中的二元逻辑运算符是短路运算——如果第一个操作数可以确定结果,第二个操作数将不被验证(运算)。例如,在下面的代码中,函数foo()
永远不会被调用。
false && foo()
true || foo()
此外,二元逻辑运算符会返回操作数中的一个——可能是一个布尔值,也可能不是。一张真值表用来决定返回哪个值:
- 与:如果第一个操作数是假值,返回第一个。否则返回第二个操作数。
> NaN && 'abc' NaN > 123 && 'abc' 'abc'
- 或:如果第一个操作数是真值,返回第一个。否则,返回第二个操作数。
> 'abc' || 123 'abc' > '' || 123 123
等值运算符(Equality operators)
在JavaScript中检测相等,你可以使用严格相等(===
)和严格不等(!==
)。或者你也可以使用非严格相等(==
)和非严格不等(!=
)。经验规则:总是用严格运算符,假装非严格运算符不存在。严格相等更安全。
深入阅读
以上内容是否对您有帮助:
更多建议: