gpt4 book ai didi

javascript - 类型错误和短路评估?

转载 作者:行者123 更新时间:2023-11-28 14:44:42 25 4
gpt4 key购买 nike

TS代码

image = this.selectedItem.image.url || null;

错误

TypeError: Cannot read property 'url' of null

我的问题是,为什么不是 || null 启动而不是抛出类型错误?

最佳答案

您拥有的最短选项是:

image = this.selectedItem && this.selectedItem.image && this.selectedItem.image.url || null;

如果任何一个&&失败,您将得到null,但您必须检查您尝试访问的对象的每个“级别”。

这是有效的,因为 && 的操作顺序优先于 ||。上面的语句类似于:

x = (((a.b) && (a.b.c)) && (a.b.c.url)) || null;

另一方面,您所拥有的类似于:

x = (a.b.c.url) || null;

如果a.b没有属性c,则无法获取url。这就是错误被抛出的原因,而这不是最后的“或”可以捕捉到的。

关于javascript - 类型错误和短路评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46812592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com