我注意到Chrome和Firefox在访问未定义/null引用上的变量时会给出不同的错误消息。
let a = {b: {c: null}};
a.b.c.d;
Chrome中的错误消息:Uncaught TypeError: Cannot read property 'd' of null
Firefox中的错误信息:Uncaught TypeError: a.b.c is null
因此,Firefox会告诉我引用的表达式为null,但不会告诉我试图在其上访问什么。
相反,Chrome会告诉我试图访问什么,并且使用的引用为null,而不会告诉引用的表达式。
在调试时,我会考虑这两个有价值的信息。特别是当JS代码被缩小,行号不再与开发代码匹配时。
是否可以从浏览器中获取这两种信息?
当您使用Firefox Nightly和Firefox Developer Edition时,您会收到以下错误消息:
未捕获类型错误:无法访问属性"d";,a.b.c为空
这只发生在这些版本的Firefox中,因为试图更改错误消息会破坏网站。Bug 1259822