下面是短路运算符的示例。
在JavaScript短路中, 从左到右评估表达式, 直到确认其余条件的结果不会影响已经评估的结果。如果在完全计算表达式之前仍清楚结果, 则表示短路并返回结果。短路评估可避免不必要的工作, 并提高处理效率。
AND(&&)短路:在AND的情况下, 表达式将一直求值, 直到得到一个错误的结果为止, 因为结果将始终为false, 与其他条件无关。如果存在一个带有&&(逻辑AND)的表达式, 并且第一个操作数本身为false, 则发生短路, 不对另一个表达式求值, 并返回false。
例子:使用AND(&&)运算符进行短路。
<script>
// Since first operand is false and operator
// is AND, Evaluation stops and false is
// returned.
console.log( false && true && true && false )
// Whole expression will be evaluated.
console.log( true && true && true )
</script>
输出如下:
false
true
OR(||)短路:如果是OR, 则对表达式进行求值, 直到获得一个真实结果为止, 因为该结果始终为true, 而与其他条件无关。如果存在带有||(逻辑OR)的表达式, 并且第一个操作数本身为true, 则发生短路, 评估停止, 并返回false。
例子:使用OR(||)进行短路。
<script>
// First operand is true and operator is ||, // evaluation stops and true is returned.
console.log( true || false || false )
// Evaluation stops at the second operand(true).
console.log( false || true || true || false )
</script>
输出如下:
true
true