{{cartList?.[shopId]?.[item._id]?.count || 0}}不懂

{{cartList?.[shopId]?.[item._id]?.count || 0}}不懂

​为是什么要这样写{{cartList?.[shopId]?.[item._id]?.count || 0}} ?

这样写{{cartList?.shopId?.item._id?.count || 0}} 为什么不行,这个cartList?.[shopId]打点方括号什么意思?前面课程有教过吗?我忘了在哪个课程里了。

正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2021-04-14 17:55:16

同学你好,对于你的问题解答如下:

1、先了解下?.语法,具体参考下面的解释:

?.意思是尝试访问对象的属性之前检查对象是否存在。可以参考如下解析:

例如:obj ?. age 可以简单的理解为它的作用与三目运算符类似,即: obj?obj.age : undefined,如果obj对象存在,那么就返回obj的age属性值,否则的话返回undefined。

http://img1.sycdn.imooc.com//climg/6040b543095e28a208800285.jpg

两者输出的结果一样,如下图所示:

http://img1.sycdn.imooc.com//climg/6040b54c099f794505990190.jpg
2、然后再来分析老师写的这句代码,{{cartList?.[shopId]?.[item._id]?.count || 0}}这句代码的意思就是先判断cartList对象上的shopId是否存在,如果存在的话,接着判断cartList对象下shopId属性下的item._id属性是否存在,如果存在的话,就返回它下面的count属性值,否则的话,返回0。

3、因为shopId和item._id是变量,所以需要使用方括号来访问对应的属性值。在前面课程中有讲解,可以回顾下课程,加深记忆与理解,https://class.imooc.com/lesson/1634#mid=37354 

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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