疑问 ! 关于逻辑或

新手上路,请多包涵

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

比如这样image.png

goodsItem:{

img:"图片"

}

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

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

所以打印出了img属性

当我这样写 image.png

它依然可以打印出img的值

可是当我这样写

image.png

它却报错了!!!

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

阅读 2.3k
2 个回答
({}).a
undefined

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

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

  1. 报错了,你要看错误信息,根据错误信息去检查你的代码。结果你在提问的时候都不贴错误信息,说明你 debug 这里还不过关。
  2. 访问 undefined 对象的属性导致报错其实很常见,多检查
  3. 可以考虑使用 optional chaining 运算符 ?.,即 a?.b?.c,这样每次都会检查属性是否存在,并且及时短路避免报错
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题