关于短路运算我总是会忘记,所以今天我将其记录下来,方便日后的复习
短路运算的原理:当有多个表达式(值),左边的表达式的值可以确定结果时,就不再继续运算右边的表达式的值
逻辑与&&
语法:表达式1 && 表达式2
如果表达式1的值为真,则返回表达式2
如果表达式1的值为假,则返回表达式1
let a = 5 && 6;
console.log(a); //返回的结果为 6
let b = 5 && 6 && 7
console.log(b); //返回的结果为 7
let c = 5 && 6 && 0
console.log(c); //返回的结果为 0
let d = 0 && 5
console.log(d); //返回的结果为 0
在逻辑与 && 中
- 从左到右表达式为假,则返回该表达式
- 为真则向右进行运算判断真假
- 右边为最后一位时则返回该表达式的值(不论真假)。
逻辑或||
语法:表达式1 && 表达式2
如果表达式1的值为真,则返回表达式1
如果表达式1的值为假,则返回表达式2
let a = 5 || 6;
console.log(a); //返回的结果为 5
let b = 0 || 6
console.log(b); //返回的结果为 6
let c = 0 || 0
console.log(c); //返回的结果为 0
let d = 0 || 0 || false
console.log(d); //返回的结果为 false
在逻辑或 || 中
- 从左到右表达式为真,则返回该表达式
- 为假则向右进行运算判断真假
- 右边为最后一位时则返回该表达式的值(不论真假)。
注意:0
、 ''
(空字符串) 、 null
、undefined
、 NaN
会判断为假,其余为真