为什么JavaScript为"逻辑AND"返回空字符串?操作

时间:2017-10-10 06:16:17

标签: javascript

为什么空字符串和false布尔值之间的逻辑AND比较会返回空字符串?为什么字符串和false布尔值之间的逻辑AND比较返回false?

示例:

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

问题是为什么javascript会以这种方式运行?

2 个答案:

答案 0 :(得分:4)

Javascript AND(expr1 && expr2)运算符通过返回基于逻辑的表达式来工作:

if expr1 is falsy
  return expr1
else
  return expr2

Falsy值包括空字符串(''),nullNaNundefined等。您可以在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