未定义的变量如何引发类型错误?

1252748

我有一个收到错误的用户

TypeError: a is undefined

我很困惑这怎么发生。不会尝试访问未定义的变量引发参考错误吗?在什么情况下会引发类型错误?

迪西

正如@jgillich在回答中指出的那样,以下代码TypeErrorundefined对象产生一个

> a
ReferenceError: a is not defined
> var a;
> a.x
TypeError: a is undefined

要了解原因,请参阅ECMAScript 5.1规范的第11.2.1节“属性访问器”我们对第5步感兴趣

5.调用CheckObjectCoercible(baseValue)。

在我们的示例中,baseValue是reference的值a这意味着baseValueundefined

CheckObjectCoercible9.10节中定义

如果抽象操作CheckObjectCoercible的参数是无法使用ToObject转换为Object的值,则会引发错误。由表15定义:

我们可以在表15中看到,一个TypeError被抛出undefinednull值。

因此,像往常一样,我们之所以使用aTypeError而不是a的原因ReferenceError是,因为规格说明是如此!

还有其他方法可以获取TypeErroron undefined,特别是ToObject也可以抛出TypeErrorfor undefined

这三行代码产生TypeError: can't convert undefined to object

Object.defineProperties({}, undefined);
Object.prototype.toLocaleString.call(undefined);
Object.prototype.valueOf.call(undefined);

尽管这次消息更清晰了。

也直接在undefined产品上调用TypeError: undefined has no properties

undefined.foo();
undefined.x;

所有这些都使用Firefox 33.0a2(Aurora)进行了测试。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

收到类型错误,提示我的websocket变量未定义

类型错误 .then 未定义

错误:未定义的变量

未定义的变量错误

Expression API引发异常:从范围''引用的类型为'x'的变量'x',但未定义

如何引发异常或检查未定义?

如何修复PyDev“导入时未定义变量”错误?

如何使bash将未定义的变量视为错误?

如何处理r中的变量未定义错误

如何解决此错误“未定义变量:selectedType”

如何清除laravel未定义变量错误

如何解决php错误未定义变量:id?

PHP错误未定义变量注意如何修复?

如何修复此错误“未定义变量:产品(0)”

为什么TypeScript不会为未定义类型引发编译错误

动态选择引发类型错误:无法读取未定义的属性“地图”

在Internet Explorer生成变量时声明变量编译错误:未定义用户定义的类型

反应性语句命中未定义的变量后将引发错误。怎么预防呢?

动态SQL引发错误提示标量变量未定义

意外的结果:为什么访问未定义的变量不会引发错误?

在Angular模板中,如果未定义变量,是否有引发错误的方法?

python lambda使用多个参数引发未定义的变量错误

VBA声明未定义的类型变量?

AJAX 类型错误:查询未定义

类型错误:RADIOBUTTON [i]是未定义

类型错误:历史未定义

未定义的元组的python类型错误

解决类型错误:事件未定义

AnyLogic getHomeLocation()错误“类型未定义”