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

时间:2015-07-21 20:42:51

标签: javascript error-handling typeerror

我们正在记录javascript错误,并且出现了很多错误消息null is not an object,例如TypeError: null is not an object (evaluating 'foo[bar]')。在我搜索此错误并尝试复制错误时,我不断收到Cannot read property 'foo' of null错误。我无法找到导致null is not an object错误的方法。

两个错误之间有什么区别?什么是一个被调用而不是另一个的例子?

3 个答案:

答案 0 :(得分:3)

一个例子is here

当您为对象分配空值并尝试访问其中任何属性时,您将获得null不是对象。

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

  •   

    null不是Safari中的对象

  •   

    无法在Chrome中读取null属性

  •   

    TypeError:Firefox中的obj [1]为空

答案 1 :(得分:0)

最后的回复是正确的,根据浏览器有不同的消息。给出以下代码:

var a = null, b = 5;
a[b];

Chrome会提供错误Uncaught TypeError: Cannot read property '5' of null,而Safari会提供错误TypeError: null is not an object (evaluating 'a[b]')

答案 2 :(得分:0)

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

<? php
    exec('C:\\xampp\htdocs\\upload.vbs');
?>

对于chrome,消息将是

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

for safari

cannot read property 'length' of null