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

希望看完你对运算符有所了解

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。
大家都在看: