开发者问题收集

javascript 错误“无法读取 null 的属性‘foo’”和“null 不是对象”之间有什么区别

2015-07-21
468

我们正在记录 javascript 错误,其中一条经常出现的错误消息是 null 不是对象 ,例如 TypeError: null 不是对象(评估“foo[bar]”) 。在我搜索此错误并尝试复制该错误时,我不断收到 无法读取 null 的属性“foo” 错误。我无法找到导致 null 不是对象 错误的方法。

这两个错误之间的区别是什么?当其中一个被调用而不是另一个时,有哪些示例?

3个回答

这里有一个示例

当您将 null 值分配给对象并尝试访问其任何属性时,您将得到 null is not an object。

因此,基本上,如果您尝试在具有 null 值的对象上调用任何函数,都会出现此错误:

  • null is not an object in Safari

  • 无法读取 Chrome 中的 null 属性

  • TypeError: obj[1] is null in Firefox

Shefali Gupta
2015-07-21

最大的答复是正确的,根据浏览器的不同消息。给定以下代码:

757726941

chrome将给出错误 und offerchupt typeError:无法读取null 的属性'5',而Safari将给出错误 代码> typeError:null不是对象(评估'a [b]') 。

Bradley Oesch
2015-07-21

没有太大区别。消息取决于脚本运行的浏览器/环境。例如:-

var x = null;
console.log(x.length);

对于 chrome,消息将是

cannot read property 'length' of null

对于 safari

'null' is not an object (evaluating 'c.length')
abs
2015-07-21