空值合并操作符(??)及可选链式操作符(?.)

Posted 这个少年有点热丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空值合并操作符(??)及可选链式操作符(?.)相关的知识,希望对你有一定的参考价值。

??

今儿看到一个操作符 ?? ,以前没见过,很好奇,就查了一下,这里总结一下。

这个操作符叫 空值合并操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

也就是说,他在进行逻辑判断的时候其实跟 || 很像,不同的是 || 对于任何假值(0, \'\', NaN, null, undefined)都不会被返回,而这个 ?? 只会在遇到 null 或者 undefined 时才不返回。

这个特性在处理可能遇到0,但不希望把0给滤掉的时候应该很有用。

另外这个操作符也具有短路的特性,当左表达式不为 null 或 undefined 时,不会对右表达式进行求值了。

?.

查的时候发现了另一个操作符--可选链式操作符(?.)

在这访问属性可能为 undefined 与 null 的对象时,可选链式操作符能避免一些报错。如下:

var a = null;
a.b     // Uncaught TypeError: Cannot read property \'b\' of null
a?.b    // undefined

以上是关于空值合并操作符(??)及可选链式操作符(?.)的主要内容,如果未能解决你的问题,请参考以下文章

ES11(2020)可选链操作符和空值合并运算符

JavaScript进阶(十三)JavaScript 空值合并运算符可选链操作符空值赋值运算符讲解

空值合并运算符和可选链

空值合并运算符和可选链

可选链与空值合并

Vue2中 ?. 可选链式调用操作符