在JavaScript中,|| 和 &&、!都是逻辑运算符。
在 || 计算中,X || Y 首先计算X并将X解释执行为一个布尔值, 如果这个布尔值true,则返回true(1),不再计算Y,因为“或”的条件已经满足;如果这个布尔值false,则计算Y,并且也把它解释执行为一个布尔值。
console.log(0||1) //1
console.log(1||2) //1
1、只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
2、只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
在&&计算中,X&&Y,首先计算X并将X解释执行为一个布尔值,如果这个布尔值为false,则返回false(0),不再计算Y,因为“与”的条件已经失败,如果这个布尔值true,则计算Y,并且也把它解释执行为一个布尔值。
console.log(0&&1)//0
console.log(1&&2)//2
1、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
2、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
!运算符,对于非布尔值的数据,取反运算符会自动将其转为布尔值。
!undefined // true
!null // true
!false // true
!0 // true(包括+0和-0)
!NaN // true
!'' // true
!54 // false
!'hello' // false
![] // false
!{} // false