随着 ECMAScript 2021(ES12)的发布,JavaScript 编程语言又有了一些新的功能和特性。其中一项重要的更新是新的运算符,这些运算符可以帮助简化代码,提高开发效率。在本文中,我们将深入探讨这些新的运算符,并提供一些有用的示例代码。
空值合并运算符(Nullish Coalescing Operator)
在 JavaScript 中,当使用逻辑或运算符 ||
进行赋值时,如果左侧的操作数为假值(false
、null
、undefined
、""
、0
或 NaN
),则返回右侧的操作数。这种行为通常被称为“短路评估”。
例如,以下代码将返回字符串“default”:
const foo = null || undefined || "" || 0 || NaN || "default";
在 ECMAScript 2021 中,我们引入了一个新的运算符 ??
,称为空值合并运算符。它类似于逻辑或运算符,但仅在左侧的操作数为 null
或 undefined
时返回右侧的操作数。
例如,以下代码将返回字符串“default”:
const foo = null ?? undefined ?? "" ?? 0 ?? NaN ?? "default";
这里,只有左侧的操作数 null
和 undefined
被视为假值,因此只有右侧的操作数 "default"
被返回。
可选链运算符(Optional Chaining Operator)
在访问嵌套对象的属性时,我们通常需要使用多个点符号来访问它们。例如,以下代码访问了嵌套的 foo
和 bar
属性:
const value = obj && obj.foo && obj.foo.bar;
在 ECMAScript 2021 中,我们引入了一个新的运算符 ?.
,称为可选链运算符。它允许我们在访问嵌套对象的属性时避免使用多个点符号。
例如,以下代码使用可选链运算符来访问 foo
和 bar
属性:
const value = obj?.foo?.bar;
如果 obj
、obj.foo
或 obj.foo.bar
中的任何一个属性为 null
或 undefined
,则 value
将返回 undefined
,而不会引发 TypeError
错误。
逻辑赋值运算符(Logical Assignment Operators)
在 ECMAScript 2021 中,我们还引入了三个新的运算符,称为逻辑赋值运算符。它们是:
||=
:如果左侧的操作数为假值,则将右侧的操作数赋值给它。&&=
:如果左侧的操作数为真值,则将右侧的操作数赋值给它。??=
:如果左侧的操作数为null
或undefined
,则将右侧的操作数赋值给它。
例如,以下代码使用逻辑赋值运算符将默认值赋给变量 foo
:
let foo; foo ||= "default";
这里,如果 foo
的值为假值,则将字符串 "default"
赋值给它。
总结
ECMAScript 2021(ES12)中的新运算符可以帮助简化 JavaScript 代码,并提高开发效率。我们已经介绍了空值合并运算符、可选链运算符和逻辑赋值运算符,并提供了相关的示例代码。在实际开发中,我们建议使用这些新的运算符,以提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f2c1d02b3ccec22fb587b2