1.&& 逻辑与
&&会从左到右执行表达式,直到某个表达式的运行结果返回false,如果全部为true,则返回最后一个中表达式的执行结果
console.log(1 && 2) // 2
console.log(1&&10&&15) // 15
console.log(1&&0&&15) // 0
console.log(1&&10&&5||0) // 5
1&&10&&5||0执行结果可以看出来 &&的运算符优先级高于||
可以理解为
(1&&10&&5)||0
2.|| 逻辑或
||会从左到右执行表达式,直到某个表达式的运行结果返回true,则返回该表达式的运行结果作为整个||表达式的运行结果;如果所有表达式的直接结果均为false,则返回最后一个表达式的执行结果作为整个||表达式的结果
console.log(2 || 3) // 2
console.log( 0 || 5 ) // 5
console.log((a=false) || undefined || 0) // 0
3. ! 逻辑非
!可以用来对一个值进行非运算,对条件取反。
两次取反等于本身
console.log(!true) // False
console.log(!0) // true
console.log(!!0) // 0
4.& 按位与
&:按位与运算符,将两个数的二进制的每一位进行与操作,只有两个数对应位都为 1 时结果位才为 1
5 & 3 // 0101 & 0011 = 0001
// 结果输出为1
4.| 按位或
|
是按位或运算符,用于对两个数的二进制表示进行按位或操作。
|
是按位或运算符,用于处理整数的二进制位。
console(2 | 1) // 3
5.~ 按位非
~:非运算符,反转所有位,包括符号位
~10 // -11
// 输出-11,因为10的二进制是1010,按位非后变为0101,这是-11的二进制表示
~12 // -13// 二进制取反+1
6. 移位运算符
<<:左移位运算符
10 <<2 //0000 1010 左移位之后 0010 1000
>> :右移位运算符,高位补0或者1
-10 >>2 // -3
10>>2 //2
7. 按位异或
按位异或运算符 ^
5 ^ 3 // 0101 ^ 0011 = 0110
// 结果为6
8.>>>无符号右移
>>>:将数字的二进制向右移动指定位数,无论原始数字结果如何,都用0补高位
-10>>>2 //1073741821
希望看完你对运算符有所了解