ES11(也称为 ECMAScript 2020)是 JavaScript 的最新版本,它新增了许多新的特性来提升开发效率,其中最引人注目的就是可选链操作符(Optional Chaining Operator)和 nullish 合并运算符(Nullish Coalescing Operator)。
可选链操作符
在 JavaScript 中,当你想要访问一个嵌套对象的属性时,通常需要进行一些条件判断来避免出现 undefined 或 null 的情况。
例如,如果想要获取一个对象的子对象的子对象的属性,通常需要这样写:
if (obj && obj.subObj && obj.subObj.subProp) { var value = obj.subObj.subProp; }
使用可选链操作符,你可以像这样简化代码:
var value = obj?.subObj?.subProp;
可选链操作符 ?.
表示如果前面的属性或方法存在就执行,否则返回 undefined。如果你想要使用默认值,可以将可选链操作符与 nullish 合并运算符结合使用。
nullish 合并运算符
在 JavaScript 中,我们通常使用逻辑运算符 ||
来提供默认值,例如:
var value = obj.prop || defaultValue;
但是当属性的值为 falsy 值时,这种方法会返回默认值,而非属性的值本身。
nullish 合并运算符 ??
是一种新的逻辑运算符,它只会在左侧的操作数为 null 或 undefined 时才返回右侧的默认值。例如:
var value = obj.prop ?? defaultValue;
这将只有在 obj.prop
的值为 null 或 undefined 时才返回 defaultValue
。
示例代码
下面是一个使用可选链操作符与 nullish 合并运算符的示例:
-- -------------------- ---- ------- -- ---- --- ---- - - ----- ----- ----- ------ ------------------- -------- - ----- ---- ----- - -- -- ------ --- ---- - ------------------- -- ---------- -- ---- ------------------ -- ---- ----- -- ------ ------ ------------------ -- -------- --- ---- - ------------------- -- ---------- -- ---- ------------------ -- ---------展开代码
总结
使用可选链操作符和 nullish 合并运算符可以使你的代码更加简洁易懂,并且可以避免一些不必要的错误。如果你正在使用新版本的 JavaScript,那么这两个新特性是值得一试的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fd91d395b1f8cacdce4f59