学习前辈代码编写的风格---可选链操作符( ?. )

在学习前辈代码时看到前辈在处理接口时用到了一个很陌生的运算符可选链操作符( ?. )、在学习ES6的时候应该是学习过但是从来没有使用过前辈代码如下:

// bbb是接口 创建一个a接收接口返回的数据

const a = bbb()
if(a.respCode == '0000' && a.data?.list?.length){
    // 业务逻辑
}

// 如果 a.data 存在并且不为 null 或 undefined,
// 则返回 a.data.list 的值,否则返回 undefined

// 接着 如果 a.data.list 存在并且不为 null 或 undefined,
// 则返回 a.data.list.length,否则返回 undefined

可选链操作符:

可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。( ?. ) 操作符的功能类似于( . )链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。在探索一个对象的内容时,如果不能确定哪些属性必定存在,可选链操作符也是很有帮助的。


在处理接口的时候不确定一个值存在是否就可以使用这个来进行判断,很实用的一个运算符。

以前从来没有使用过这个东西,感觉新世界大门一下子就打开,感觉很让人欣喜果然多学多用才能让人更好的进步

猜你喜欢

转载自blog.csdn.net/WDJ_webDeveloper/article/details/135358559