?.

?.

https://img1.sycdn.imooc.com//climg/64ae4f0e0948475c06610099.jpg

?.是尝试访问对象的属性,如果对象的属性不存在,则会返回undefined

但是我打点访问对象的属性,如果对象的属性不存在,它本身就会返回undefined,

那么是不是直接用打点调用就可以了,不需要?.访问

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,如果只是“对象.xxx”这种形式,那么直接写“.“就行,不用写“?.”。但是,如果是获取深层属性,比如“对象.xxx.yyy“,如果“对象.xxx”本身就是undefined,那么继续“.yyy”,代码会报错。如果用“对象?.xxx?.yyy“,那么即使对象上没有xxx属性,继续获取yyy属性,代码也不会报错,而是会返回undefined。此时“?.”才会起到容错的作用。

祝学习愉快!

慕芸芸 提问者 2023-07-12 15:15:04

是因为访问的属性一长,就会报错吗?

  • 属性长,出现报错的风险大,比如“对象.xxx.yyy“,如果xxx属性不存在,那么“对象.xxx.”就是undefined--》“对象.xxx.yyy“就是获取undefined上的yyy属性(undefined.yyy),这样肯定是报错的。

    2023-07-12 15:27:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师