gpt4 book ai didi

javascript - 为什么在javascript中引用对象的不存在属性不会返回引用错误?

转载 作者:行者123 更新时间:2023-12-03 08:38:57 25 4
gpt4 key购买 nike

如果尝试引用不存在的变量,则会在JavaScript中得到ReferenceError。为什么引用不存在的对象属性会返回“未定义”?
这是一些代码,只要我在浏览器中编写它即可:

alert(a);
ReferenceError: a is not defined //error is thrown
alert({}.a)
undefined //no error

最佳答案

这就是语言的工作方式。它的基于对象的方法非常灵活,您可以在运行时动态地从对象中添加,更新和删除属性。访问当前不存在的代码应该产生undefined而不是引发异常。例如,这允许检查单个表达式的存在和类型:

if (prop in obj && typeof obj[prop] == "function") obj[prop]();
// can be written shorter:
if (typeof obj[prop] == "function") obj[prop]();

您可以不使用它而获得该值。然后在大多数情况下使用 undefined会抛出异常。

相反,变量在其范围内是静态声明的。访问未声明的变量始终是一个错误,它会抛出 ReferenceError

关于javascript - 为什么在javascript中引用对象的不存在属性不会返回引用错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63974260/

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