逻辑运算符(&& 和 ||)
- 如果
&&
的第一个运算数是false,就不再执行第二个运算数或表达式 - 如果
||
的第一个运算数是true,也不再执行第二个运算数或表达式
true&&console.log("&&左边为true") // 打印结果:&&左边为true
false&&console.log("&&左边为false") // 不打印
true||console.log("||左边为true") // 不打印
false||console.log("||左边为false") // 打印结果:||左边为false
位运算符(& 和 |)
左右两边只能是数字
&
运算符:左右两位,都为1才得1,只要一个为0就为0。|
运算符:左右两位,一个为1得1,只有两个为0才为0
console.log(0&0, 0&1, 1&0, 1&1) // 打印结果:0 0 0 1
console.log(0|0, 0|1, 1|0, 1|1) // 打印结果:0 1 1 1
console.log(31&2) // 打印结果:2
// 31 的二进制为 11111,2 的二进制为 10,11111&00010 的结果为 00010,即 2
console.log(3&4) // 打印结果:0
// 3 的二进制为 011,4 的二进制为 100,011&100 的结果为 000, 即 0
console.log(31|2) // 打印结果:31
// 31 的二进制为 11111,2 的二进制为 10,11111|00010 的结果为 11111,即 31
console.log(3|4) // 打印结果:7
// 3 的二进制为 011,4 的二进制为 100,011|100 的结果为 111, 即 7
总结:
- 这俩个东西在js里面就是两个概念,一个是判断逻辑,一个是进行位运算