??
今儿看到一个操作符 ??,以前没见过,很好奇,就查了一下,这里总结一下。
这个操作符叫 空值合并操作符,当左侧的操作数为 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