原始布尔类型包含值true和false。以下运算符产生布尔值:
二进制逻辑运算符:&&(And),||(Or)
前缀逻辑运算符:(!不)
比较运算符:
平等运营商:===,!==,==,!=
订购运营商(为字符串和数字)>,>=,<,<=
真假
每当JavaScript需要布尔值时(例如,针对if语句的条件),都可以使用任何值。它将被解释为true或false。以下值解释为false:
undefined, null
布尔值: false
编号:0,NaN
串: ''
考虑所有其他值(包括所有对象!)true。值将解释为false被称为falsy和值理解为true被称为truthy。Boolean()称为函数,将其参数转换为布尔值。您可以使用它来测试值的解释方式:
>布尔值(未定义)
假
>布尔值(0)
假
>布尔值(3)
真正
> Boolean({})//空对象
真正
> Boolean([])//空数组
真正
二元逻辑运算符
JavaScript中的二进制逻辑运算符正在短路。即,如果第一操作数足以确定结果,则不评估第二操作数。例如,在以下表达式中,foo()永远不会调用该函数:
false && foo()
true || foo()
此外,二进制逻辑运算符返回其操作数之一-可以是布尔值,也可以不是布尔值。真实性检查用于确定哪个:
和(&&)
如果第一个操作数为假,则将其返回。否则,返回第二个操作数:
> NaN &&'abc'
N
> 123 &&'abc'
'abc'
或(||)
如果第一个操作数为真,则将其返回。否则,返回第二个操作数:
>'abc'|| 123
'abc'
>” || 123
123
相等运算符
JavaScript有 两种相等:
正常,或“兼容的”,不相等:==和!=
严格的(不相等的):===和!==
普通相等认为(太多)值相等(详细信息在“ 普通(长度)相等”(==,!=)中进行了解释),这可能会掩盖错误。因此,建议始终使用严格相等。