3、逻辑赋值操作符 ??=、&&=、 ||=
看下如下代码:
let a = 1;
a = a + 2;
可以简写为:
let a = 1;
a += 2;
有了这个新的标准中,逻辑表达式的操作符(&&
、||
、??
)也可以简写了!
先来介绍下 ?? ,它是去年发布的标准中的新的逻辑操作符。大家可能遇到过,如果一个变量是空,需要给它赋值为一个默认值的情况。通常我们会这样写:
let num = number || 222
但是,以上的代码会有一个 bug。如果realCount
的值是0
,则会被当作取不到其值,会取到'无法获取'
这个字符串。而如果我们使用了??
,只有当操作符左边的值是null
或者undefined
的时候,才会取操作符右边的值:
let num = number ?? 222
接下来,再来看下新标准中的逻辑运算符怎么用:
// 等同于 a = a || b
a ||= b;
// 等同于 c = c && d
c &&= d;
// 等同于 e = e ?? f