H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】疑问 ! 关于逻辑或

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

比如这样image.png

goodsItem:{

img:"图片"

}

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

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

所以打印出了img属性

当我这样写 image.png

它依然可以打印出img的值

可是当我这样写

image.png

它却报错了!!!

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

回答:

({}).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,这样每次都会检查属性是否存在,并且及时短路避免报错

本文地址:H5W3 » 【Web前端问题】疑问 ! 关于逻辑或

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址