在前端开发中,我们经常会遇到需要判断变量是否为 null 或 undefined 的情况。在 ES10 中,新增了两个运算符 Optional Chaining 运算符和 Nullish Coalescing 运算符,可以很好地解决这类问题。本文将详细介绍这两个运算符的使用方法和注意事项,并提供实际代码示例。
Optional Chaining 运算符
Optional Chaining 运算符(?.)是一种简化代码的方式,它可以在访问对象属性或方法时,判断对象是否为 null 或 undefined。如果对象为 null 或 undefined,那么不会继续访问该属性或方法,而是直接返回 undefined。
下面是一个使用 Optional Chaining 运算符的例子:
----- ---- - - ----- ------ -------- - ----- --------- - -- ----- ---- - ------------------- ------------------ -- --------- ----- --- - --------------------- ----------------- -- ---------
在上面的例子中,我们使用 ?. 运算符来访问 user 对象的 address 属性和 age 方法。由于 user 对象中没有 age 属性,因此在调用 toString 方法时会返回 undefined。
需要注意的是,Optional Chaining 运算符只能用于访问对象属性和方法,不能用于访问数组元素和函数参数。如果需要访问数组元素和函数参数,可以使用 Nullish Coalescing 运算符。
Nullish Coalescing 运算符
Nullish Coalescing 运算符(??)是一种判断变量是否为 null 或 undefined 的方式,它可以用于访问数组元素和函数参数。如果变量为 null 或 undefined,那么返回指定的默认值。
下面是一个使用 Nullish Coalescing 运算符的例子:
----- --- - --- -- --- ----- ------ - ------ -- ---------- -------------------- -- --------- ----- ------ - ------ -- ---------- -------------------- -- - -------- ---------- - ----- ----- - ----- -- ---------- ------------------- - ------ -- --------- ---------- -- --------- ------- -- -
在上面的例子中,我们使用 ?? 运算符来访问数组元素和函数参数。由于 arr 数组中没有第四个元素,因此返回指定的默认值。在函数 foo 中,如果参数为 null 或 undefined,那么返回指定的默认值。如果参数为 0,那么返回 0。
需要注意的是,Nullish Coalescing 运算符只能用于判断变量是否为 null 或 undefined,不能用于判断变量是否为 false、0、'' 等 falsy 值。
总结
Optional Chaining 运算符和 Nullish Coalescing 运算符是 ES10 中新增的两个运算符,它们可以很好地解决访问对象属性、数组元素和函数参数时,判断变量是否为 null 或 undefined 的问题。需要注意的是,它们的使用场景有所不同,需要根据具体情况进行选择。
希望本文的介绍能够帮助您更好地理解和使用 Optional Chaining 运算符和 Nullish Coalescing 运算符。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6629b535c9431a720c73515e