栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

你知道js的可选链是什么吗?说说你对它的理解,它有什么应用场景?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

你知道js的可选链是什么吗?说说你对它的理解,它有什么应用场景?

可选链是ES2020新引入的功能,目前处于ECMAscript Proposal Stage 4阶段,将陆续登陆各大浏览器(目前可通过勾选chrome的Experimental Javascript功能体验该功能)。

本人在其Stage 2阶段开始关注,算是最期待的一个新功能之一。

语法如下:

window?.console?.log?.("Hello");

该代码可解读为

如果

window
存在,则其取
console
属性,如果
console
存在,则取其
log
属性,如果
log
存在,则将其作为方法调用。
如果该链任意一环节不存在,则忽略整个链并返回
undefined

在ES2020以前若要实现类似逻辑,可以使用以下方式:

window && window.console && window.console.log && window.console.log("Hello");

该功能在获取一个多层嵌套对象的属性,并且上层对象可能不存在时非常有用,比如

user.data?.extraData?.phone
,如果
data
extraData
有可能不存在,我们不需要判断其是否存在就可以取其
phone
值,会减少很多逻辑判断和冗余代码。

个人觉得该功能会影响代码的规范性,造成代码的可读性变差,建议只在处理网络传输数据时使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号