JS中的逻辑或||符号:
从字面上来说,只有前后都是 false 的时候才返回 false,否则返回 true。
console.log(5 > 6|| 6 > 5) //返回true
5>6为false 但是 6>5为true 所以返回 true
总结:一真为真
特殊运算方法:
- 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
console.log(false || 4) //返回4
console.log(false || 0) //返回0
- 只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
console.log(true || 4) //返回true
console.log(true || 0) //返回true
总结:返回值真前假后
可以利用该方法实现判断赋值;
let a = (5 < 0) || '9'
console.log(a);
//5>0 为false 返回9 并赋值给了a
JS中的逻辑与&&符号:
从字面上来说,只有前后都是 true 的时候才返回 true,否则返回 false。
console.log(5 > 6|| 6 > 5) //返回false
5>6为false 6>5为true 返回false
总结:一假为假
特殊运算方法:
- 只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
console.log(false && 0) //返回false
console.log(false && 4) //返回false
- 只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
console.log(true && 0) //返回0
console.log(true && 4) //返回4
总结:返回值假前真后
和逻辑或一样,可以利用该方法实现判断赋值;
let a = (5 > 0) && '9'
console.log(a);//9
//5>0 为true 返回9 并赋值给了a
在js逻辑运算中,0、” “、null、false、undefined、NaN都会判为false,其他都为true。
在使用 || 和 && 时要注意下短路规则:
短路原则
在逻辑运算中,这是一个通用的原则,这是由于表达式从左到右执行的特性,为了减少运算量而给运算器规定的操作。主要针对 && 和 || 两种运算。
- && 的判断是同真为真,一假为假,则运算如果左边的表达式值为 false,那么就不会再执行右边的表达式了,如果左表达式为 true 就会继续执行右表达式;
例如:
左边为false:
let a = 9>10 && c > b;
console.log(a)
上边的代码我们没有正常情况下未定位是会报错的但是这里没有报错同时返回了 false;
由此验证了上面的左边的表达式值为 false,那么右边的就不会执行了,即便有未定的都不会报错是因为根本就没有执行。
左右为true:
let a = 9<10 && c > b;
console.log(a)
和左边为false不同 报错了
其原因是左边的为true那么右边的会继续执行
- || 的判断是一真为真,同假为假,则运算如果坐表达式值为 true,那么就不用执行右边的表达式了,如果左表达式为 false 就会继续执行右表达式;