ES11中的可选链等语法

Posted UsherYue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES11中的可选链等语法相关的知识,希望对你有一定的参考价值。

我们介绍ES11新特性 这个新特性在判断空值的方面非常简单,相关语法如下。

1、可选链语法(?.)

obj?.prop  // 如果存在prop则返回属性 
obj?.[prop] // 根据obj是否存在prop来执行[]内的表达式
arr?.[index] // 获取arr中的元素当index对应元素存在
func?.(args) // func存在调用

可选链相关语法

//当函数存在时候调用函数
var func=(x)=>
    console.log(x);
;
func?.(2);
//当数组指定下标元素存在时候 获取数组元素 
var arr=[1,2,3,4,5];
console.log(arr?.[1]);
//当对象属性存在时候
var obj=y:1;
console.log(obj?.x);
console.log(obj?.['y']);

2、空值合并操作(??)

a??b   //当a是null或者undefined的时候输出b的值

过去我们处理空值一般会

var a=x:null;
let b=a.x?a.x:1

现在利用空值合并

var a=x:null;
let b=a??1;

3、空值赋值运算符(??=)

a??=1   //当左值a是null或者undefined时候赋值为1

我们过去在处理javascript 对象的空值的时候只能做如下判断

var obj=;
//判断obj中是否存在x属性,如果是undefined或者是null的情况将其定义为1
//大概代码如下
if(obj.x===undefined||typeof (obj.x)=='undefined'|| obj.x===null)
    obj.x=1;

运用空值赋值运算后我们可以这样

//现在可以这样写,通过??=运算符简化了 空值判断
var obj=;
obj.x??=1;
console.log(obj.x)

以上是关于ES11中的可选链等语法的主要内容,如果未能解决你的问题,请参考以下文章

ES6~ES12——Array IncludesObject valuesObject entriesObject fromEntriesflatflatMap空值合并运算符可选链等

ES11中的globalThis和可选链

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

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

javascript中的可选链操作符

Swift的可选链,类型转换和扩展