Javascript:奇怪的行为`空字符串`和`false`返回空字符串

时间:2015-08-13 09:14:25

标签: javascript

今天我在Javascript中遇到了奇怪的行为。以下是代码

return "" && false

返回""。

为什么会出现这种情况?

2 个答案:

答案 0 :(得分:2)

由于

  

制作LogicalANDExpression:LogicalANDExpression&& BitwiseORExpression的评估如下:

     
      
  1. 让lref成为评估LogicalANDExpression的结果。
  2.   
  3. 让lval成为GetValue(lref)。
  4.   
  5. 如果ToBoolean(lval)为false,则返回lval。
  6.   
  7. 让rref成为评估BitwiseORExpression的结果。
  8.   
  9. 返回GetValue(rref)。
  10.   

ECMAScript 5.1

这意味着:

  

如果它是假的,则返回第一个值,如果第一个值是真的,则返回第二个值。

如果您这样做,也会出现这种情况:

return false && true

你得到false

这也意味着这个

return 23 && "Hello"

会给你“你好”

答案 1 :(得分:0)

首先运行LHS,然后返回退出函数