(给前端大学加星标,提升前端技能.)
你有没有花一个下午的时间来阅读Mozilla的文档?如果你有,你就会很清楚,网上有很多关于JavaScript的信息。这使得人们很容易忽视一些比较生僻的JavaScript操作符。
然而,这些操作符不常见并不意味着它们不强大! 它们各自在语法上看起来很相似,但一定要读懂每一个,因为它们的工作方式不同。
就让我们一探究竟吧!
1. ?? 操作符
在JavaScript中,??运算符被称为nullish coalescing运算符(零合并操作符)。如果第一个参数不是null/undefined,这个运算符将返回第一个参数,否则,它将返回第二个参数。我们来看一个例子。
当为一个变量分配默认值时,JavaScript开发人员传统上依赖逻辑OR运算符,比如这样。
上面我们创建了一个函数moneyAmount,负责返回用户的当前余额。我们使用了||操作符来识别没有账户的用户。然而,当一个用户没有账户时是什么意思呢?更准确的做法是将无账户视为null,而不是0,因为银行账户可以存在无(或负)钱的情况。在上面的例子中,||操作符将0视为一个假值,因此没有登记我们的用户有一个0美元的账户。让我们通过使用nullish coalescing操作符来解决这个问题。
概括地说,??运算符允许我们分配默认值,同时忽略0和空字符串等错误值。
2. ??=操作符
??=又被称为逻辑空值赋值运算符,与我们之前学习的内容密切相关。我们来看看它们是如何联系在一起的。
这个赋值操作符只有在当前值为空或未定义的情况下才会赋一个新的值。上面的例子强调了这个操作符本质上是空值赋值的语法糖。接下来,让我们看看这个操作符与默认参数有何不同。
领取专属 10元无门槛券
私享最新 技术干货