ECMAScript 2020 是 JavaScript 编程语言的最新标准,它引入了一项新的语法特性:nullish 合并操作符(nullish coalescing operator)。本文将详细介绍 nullish 合并操作符及其实际使用场景,并提供示例代码。
什么是 nullish 合并操作符?
nullish 合并操作符 ?? 是一个新的逻辑运算符,用于判断一个值是否是 null 或 undefined。它和传统的 || 运算符不同, || 运算符会将 falsy 值(比如 false、0、"")转为 false,导致一些错误的结果;而 ?? 运算符只有在值为 null 或 undefined 时才返回右侧的默认值。
以下是一个简单的示例,展示了两个运算符的区别:
--- - - ----- --- - - --- --- -- - - -- -- --- -- - - -- -- ---------------- -- -- ---------------- -- ----
在上面的代码中,变量 x 被赋了一个 null 值,因此 z1 的值为 y,即 10;而 z2 的值为 null,因为 ?? 运算符判断了 x 的值为 null。
nullish 合并操作符的实际使用
nullish 合并操作符主要被用于设置默认值,因为它能够防止将 falsy 值当作默认值:
-------- ------- -- -- - - - - -- --- - - - -- --- -------------- -- --- - -------- ----- ----------- -- -- -- --
上面的 test 函数中,y 和 z 都被使用了 ?? 运算符设置了默认值,x 没有使用,因此输出结果中 y 为 20,z 为 30。
另一个常见的场景是在访问对象属性时使用 nullish 合并操作符:
--- ----------- - - ----- ------- ---- ---------- -------- ----- -- ---------------------------- -- ----------- -- ---- --------------------------- -- ----------- -- ------- ------------------------------- -- ----------- -- ----
在上面的代码中,对象 userProfile 中的属性值可能为 undefined 或 null,使用 ?? 运算符可以很好地处理这种情况,避免了无意义的操作。
总结
nullish 合并操作符 ?? 是 ECMAScript 2020 中的一项新增语法特性,可以用于判断一个值是否为 null 或 undefined,并设置默认值。与传统的 || 运算符不同,nullish 合并操作符避免了将 falsy 值当做默认值的错误。在使用对象属性时,nullish 合并操作符也能很好地帮助我们处理 undefined 和 null 值。这项新特性的引入将大大减少代码的错误和不必要的麻烦。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64cbe0ec5ad90b6d0422fb99