空字符串,数值0,null,NaN,undefined,false的返回值都为false
{}、[]也都为真
1.与
与运算符(&&)作用于两个到多个值,只有所有的值都为真时,结果才为true。
JavaScript里面的 与 存在短路现象,具体说明如下:
- 当第一个操作数的值为真时,会继续进入第二个值的判断,无论第二个操作数的值是真还是假,都会返回第二个操作数
- 当第一个操作数的值为假时,不会进入第二个值的判断,直接返回第一个操作数
let a = 1 && 2 && undefined;
console.log(a)//undefined
let a = 0 && 1 && 2;
console.log(a)//0
2.或
或运算符(||)作用于两到多个值,只要有一个值为真,结果就为真。
- 当第一个操作数为真时,不会进入第二个操作数,直接返回第一个操作数。
- 当第一个操作数为假时,会进入第二个操作数,但是不论第二个操作数的值是真还是假,都直接返回第二个操作数。
let a = 1 || 2 || 0;
console.log(a)//1
let a = 0 || 1 || 2;
console.log(a)//1
3.非
非运算符(!)就是取反。
let a = !{};//false
let b = !'';//true