ES2021 中的 Logical nullish assignment 表达式

在 ES2021 中,新增了一个运算符 ??=,也称为 Logical nullish assignment 表达式。这个运算符可以方便地对变量赋值,同时避免了一些常见的错误。

什么是 Logical nullish assignment 表达式?

Logical nullish assignment 表达式是一个组合运算符,包括了 Nullish Coalescing 运算符 ?? 和赋值运算符 =。它的作用是在变量为 nullundefined 时,才对其进行赋值。

为什么需要 Logical nullish assignment 表达式?

在 JavaScript 中,我们经常会使用 || 运算符来给变量赋默认值,例如:

但是这种方式有一个问题,当 inputName 的值为 false0 时,都会被视为未定义的值,从而导致默认值被错误地赋予给变量。为了避免这个问题,我们可以使用 Logical nullish 运算符 ?? 来判断变量是否为 nullundefined,例如:

但是这种方式还有一个问题,当我们需要给一个变量赋默认值并且更新它的值时,就需要写两行代码,例如:

这样的代码显得冗长且不够优雅。为了解决这个问题,我们可以使用 Logical nullish assignment 运算符 ??=,例如:

这样的代码更加简洁且易读。

Logical nullish assignment 表达式的用法

Logical nullish assignment 表达式的语法如下:

其中,variable 是要赋值的变量,value 是默认值。如果 variable 的值为 nullundefined,则将 value 赋给它。

下面是一个使用 Logical nullish assignment 表达式的示例代码:

在这个示例中,当变量 x 的值为 nullundefined 时,将 10 赋给它;而当变量 y 的值不为 nullundefined 时,不会对它进行赋值。

总结

Logical nullish assignment 表达式是 ES2021 中新增的一个运算符,它可以方便地对变量赋值,并避免了一些常见的错误。使用 Logical nullish assignment 表达式可以使代码更加简洁、易读,并提高代码的可维护性。

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


纠错
反馈