ES10 nullish 合并运算符:不再重复判空!

在 JavaScript 中,我们经常需要判断一个变量是否为 nullundefined,然后再进行后续的操作。这个过程非常繁琐,而 ES10 中新增的 nullish 合并运算符(??)可以让我们不再重复判空,从而简化代码。

nullish 合并运算符的定义

nullish 合并运算符是一个新的二元运算符,用来判断一个值是否为 nullundefined,如果是,则返回一个默认值,否则返回该值本身。它的语法如下:

其中 ab 是两个操作数,?? 是 nullish 合并运算符。

nullish 合并运算符的优势

在 JavaScript 中,我们经常使用逻辑或运算符(||)来判断一个变量是否为 nullundefined,然后返回一个默认值。例如:

但是这种方法存在一个问题,当变量的值为 falsy 值(例如 0""false 等)时,逻辑或运算符会将其误判为 nullundefined,从而返回默认值。这显然不是我们想要的结果。

nullish 合并运算符解决了这个问题,它只在变量的值为 nullundefined 时才返回默认值,对于其他 falsy 值则不会产生影响。例如:

这样就可以确保只有当 person.namenullundefined 时才返回默认值,而不会误判其他 falsy 值。

nullish 合并运算符的使用场景

nullish 合并运算符可以用于任何需要判断变量是否为 nullundefined 的场景。例如,我们可以使用它来设置默认参数:

我们也可以将 nullish 合并运算符与可选链操作符(?.)一起使用,以避免出现繁琐的判断语句:

在这个例子中,我们使用了可选链操作符来判断 person.address.street 是否存在,如果存在则返回该值,否则返回 nullundefined。然后我们再使用 nullish 合并运算符来判断该值是否为 nullundefined,如果是,则返回默认值。

总结

ES10 中新增的 nullish 合并运算符可以让我们不再重复判空,从而简化代码。它能够正确地判断一个变量是否为 nullundefined,并返回一个默认值。我们可以将它应用于任何需要判断变量是否为 nullundefined 的场景,例如设置默认参数、避免繁琐的判断语句等。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658065c7d2f5e1655db95cf9


纠错
反馈