luk*_*ups 8 javascript logic logical-operators
当我输入浏览器的控制台时:
console.log(2 && 3)
Run Code Online (Sandbox Code Playgroud)
它总是带有第二个数字(在这种情况下为3):
3
Run Code Online (Sandbox Code Playgroud)
有人能解释一下为什么吗?
Que*_*tin 15
如果左侧&&评估为假值,则整个表达式评估为左侧.
否则,它将评估为右侧.
2是真正的价值,2 && 3也是3.
为了比较,尝试console.log(0 && 1)和console.log(false && "something").
&&必须评估所有表达式.2 && 3首先会评估"真实性" 2是真正的价值,但它必须进行评估3.然后返回最后评估的值.如果至少有一个值是非真实的,则返回第一个这样的值.
||另一方面,如果没有真正的表达,则返回第一个真实表达或最后一个非真实表达.
&&返回最后一个可能值的原因是它只需检查所有表达式以返回结果.||不必这样做.如果第一个表达式为||true,则忽略所有其他表达式.同样,如果第一个表达式为&&false,则忽略所有其他表达式(请参阅逻辑运算符中的短路).
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |