今天我在Javascript中遇到了奇怪的行为。以下是代码
return "" && false
返回""。
为什么会出现这种情况?
答案 0 :(得分:2)
由于
制作LogicalANDExpression:LogicalANDExpression&& BitwiseORExpression的评估如下:
- 让lref成为评估LogicalANDExpression的结果。
- 让lval成为GetValue(lref)。
- 如果ToBoolean(lval)为false,则返回lval。
- 让rref成为评估BitwiseORExpression的结果。
- 返回GetValue(rref)。
醇>
这意味着:
如果它是假的,则返回第一个值,如果第一个值是真的,则返回第二个值。
如果您这样做,也会出现这种情况:
return false && true
你得到false
。
这也意味着这个
return 23 && "Hello"
会给你“你好”
答案 1 :(得分:0)
首先运行LHS,然后返回退出函数