cartList?.[shopId]?.[item._id]?.count || 0

cartList?.[shopId]?.[item._id]?.count || 0

可以等价于


cartList?.shopId?.item._id?.count || 0  吗?

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

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

1回答
好帮手慕久久 2021-08-04 10:12:42

同学你好,不可以,这涉及到了“点语法”与“方括号语法”的区别。shopIditem._id都属于变量,cartList?.[shopId]和cartList?.shopId的含义是不一样的。

如下这样写,是把property当成变量来解析,实际上获取的是obj中的age属性

http://img1.sycdn.imooc.com//climg/6109f6eb099a148513450328.jpg

而如下这样写,则会把​property当成普通的字符串,实际获取的是obj中的property属性http://img1.sycdn.imooc.com//climg/6109f72a093e25dc13760472.jpg

更多内容,同学可以看下图文节:

https://class.imooc.com/lesson/1634#mid=45550

祝学习愉快!

  • 为什么shopId 和 item_id 是变量?  是因为具体的数据是后台axios获取的,这里只是命名吗?



    2022-06-05 11:06:19
  • 理解有问题。当成“变量”还是“普通字符串(固定属性)”,要看代码写法。如果代码是如下形式(xx.yy或则xx?.yy),就是当成固定的属性(普通字符串)解析的:

    https://img1.sycdn.imooc.com//climg/629c20390909042707560121.jpg

    如果是方括号语法 ( xx[yy] ),则是变量:

    https://img1.sycdn.imooc.com//climg/629c208009b7b8b608800159.jpg

    建议看看https://class.imooc.com/lesson/1634#mid=45550这个图文节,里面有很多例子,同学敲一下看看。

    2022-06-05 11:19:59
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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