疑问 ! 关于逻辑或

发布于 2022-09-12 22:25:26 字数 525 浏览 11 评论 0

问题是这样的!
当我使用逻辑或时 || 有一点不太懂的问题!

比如这样image.png

goodsItem:{

img:"图片"

}

在我的goodsItem对象中,通过这种逻辑来获取img的值

在我的goodsItem中,存在img属性 不存在image属性

所以打印出了img属性

当我这样写 image.png

它依然可以打印出img的值

可是当我这样写

image.png

它却报错了!!!

我可以感受到它错了,却不知道具体原因,希望有同学帮我解答一下,万分感谢!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伏妖词 2022-09-19 22:25:26
({}).a
undefined

(undefined).a
VM1129:1 Uncaught TypeError: Cannot read property 'a' of undefined
    at <anonymous>:1:13

goodsItem.show 如果是 undefined, 那么再调用 goodsItem.show.* 就会报错

猫九 2022-09-19 22:25:26
  1. 报错了,你要看错误信息,根据错误信息去检查你的代码。结果你在提问的时候都不贴错误信息,说明你 debug 这里还不过关。
  2. 访问 undefined 对象的属性导致报错其实很常见,多检查
  3. 可以考虑使用 optional chaining 运算符 ?.,即 a?.b?.c,这样每次都会检查属性是否存在,并且及时短路避免报错
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文