2017-10-10 134 views
1

为什么空字符串和假布尔值之间的逻辑与比较返回空字符串?为什么字符串和假布尔值之间的逻辑AND比较返回false?为什么JavaScript为“逻辑与”操作返回空字符串?

例子:

'' && true; --> returns '' 
'string' && true --> returns true; 
'' && false --> returns '' 
'string' && false --> returns false; 

问题是,为什么要使用JavaScript行为这种方式?

+4

它返回离开表达式的第一个决定值。 –

+1

你也可以用'0'和'NaN'获得相同的结果。这是JavaScript中的一个“虚假”值。所以你的逻辑AND返回与'false'相同的值(因为'true && false'是'false')。 https://developer.mozilla.org/en-US/docs/Glossary/Falsy – Walk

回答

0

&&运算符的工作原理非常简单:如果第一个值是虚假的,则返回第一个值,否则返回第二个值。

空字符串''是虚假的,所以'' && x对于所有的x都返回''。另一方面,'string'是truthy,所以'string' && x对于所有x返回x

相关问题