AND和OR运算符都可以捷径。
因此,
&&仅在第一个表达式为true时才尝试第二个表达式(更确切地说,是类似事实的表达式)。第二个操作确实起作用(无论其内容如何
foo())的事实无关紧要,因为除非第一个表达式的计算结果为真,否则它不会执行。如果是事实,则将执行它以尝试第二次测试。
相反,如果
||语句中的第一个表达式为true,则第二个表达式不会被触动。这样做是因为整个语句已经可以求值,无论第二个表达式的结果如何,该语句都会为true,因此它将被忽略并保持未执行状态。
当然,使用此类快捷方式时要注意的情况是使用运算符的情况,其中定义的变量仍会计算为伪造的值(例如
0)和真实的值(例如
'zero')。



