JS中的运算符: & | 和 &&、||、??

  • &|是位运算符。
  • &&||是逻辑运算符;

1、位运算符(与): &

只有都是1相与结果才是1。其余结果为0

0 & 0  // => 0
1 & 0  // => 0
1 & 1  // => 1

11111 & 00010  // => 00010

2、位运算符(或): |

只要有一个1相或结果为1。

0 | 0  // => 0
1 | 0  // => 1
1 | 1  // => 1

11111 | 00010  // => 11111

3、逻辑运算符(且): &&

  • 只要&&前面是false,结果都返false
  • 只要&&前面是true,结果都将返&&后面的值。
0 && 2   // => 0

1 && 3   // => 3
1 && 0   // => 0

4、逻辑运算符(或): ||

  • 只要||前面为false,都返回||后面的值。
  • 只要||前面为true,都返回||前面的值。
0 || 2   // => 2

1 || 3   // => 1
1 || 0   // => 1

5、判空运算符 : ??

  • 只要??前面为 nullundefined ,则返回??后面的值。
  • 否则返回前面的值

注意区别:??||

  • ?? 只判断是否为空(null 或 undefined)
  • || 判断的是 True 或 False
0 ?? 2           // => 0
false ?? 2       // => false

null ?? 3        // => 3
undefined ?? 0   // => 0

Number(undefined)           // => NaN
Number(undefined) ?? 2      // => NaN  ,而不是2 
posted @ 2022-08-12 10:22  炎黄子孙,龙的传人  阅读(1317)  评论(0编辑  收藏  举报