为什么空字符串和false布尔值之间的逻辑AND比较会返回空字符串?为什么字符串和false布尔值之间的逻辑AND比较返回false?
示例:
'' && true; --> returns ''
'string' && true --> returns true;
'' && false --> returns ''
'string' && false --> returns false;
问题是为什么javascript会以这种方式运行?
答案 0 :(得分:4)
Javascript AND(expr1 && expr2
)运算符通过返回基于逻辑的表达式来工作:
if expr1 is falsy
return expr1
else
return expr2
Falsy值包括空字符串(''
),null
,NaN
,undefined
等。您可以在https://developer.mozilla.org/en-US/docs/Glossary/Falsy详细了解该字符串。
有关布尔运算符的更多信息,请查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators。
答案 1 :(得分:0)
&&
运算符非常简单:如果第一个值是falsy,则返回第一个值,否则返回第二个值。
空字符串''
是假的,因此'' && x
会为所有''
返回x
。另一方面,'string'
是真实的,因此'string' && x
会为所有x
返回x
。