'无法读取属性foo of undefined'和'undefined不是对象'之间的区别是什么?

时间:2018-01-10 03:08:30

标签: javascript ecmascript-6 frontend

最近我收到了来自我们平台的一些错误消息,消息类似于undefined is not an object (evaluating 't.id'),但相关代码为bar(xxx.id)

IMO,即使它会抛出错误,也应该是can't read property id of undefined而不是undefined is not an object (evaluating 't.id')

那么,有人能告诉我为什么会这样吗?谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,我想也许是因为不同的浏览器有不同的错误处理

在野生动物园:

在chrome:

但我认为错误信息应该是相同的,因为ECMAScript规范对此有明确的定义

这是不正确的,来自@Bergi的评论:

  

但我认为错误消息应该是相同的,因为ECMAScript规范对此有明确的定义“ - 根本没有。它只是说应该抛出TypeError,并且实现可能决定提供适当的(有用的)错误他们认为合适的信息。它甚至不必是英文的