最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

internet explorer 8 - IE8 Javascript: '2' is null or not an object - Stack Overflow

programmeradmin1浏览0评论

I'm getting a nonsensical error message in IE8, tell me that the constant '2' is null or not an object. The line of code is:

if (! localtree[idx][2]) {

I also tried coding it like this:

if (localtree[idx][2] == 0) {

The value in the array at that location is always zero (for now).

How can IE8 think that the number 2 is null? I'm mystified!

The exact error is:

Message: '2' is null or not an object

Has anyone seen this?

EDIT : This is a very misleading error message. See my answer below for what actually went wrong.

I'm getting a nonsensical error message in IE8, tell me that the constant '2' is null or not an object. The line of code is:

if (! localtree[idx][2]) {

I also tried coding it like this:

if (localtree[idx][2] == 0) {

The value in the array at that location is always zero (for now).

How can IE8 think that the number 2 is null? I'm mystified!

The exact error is:

Message: '2' is null or not an object

Has anyone seen this?

EDIT : This is a very misleading error message. See my answer below for what actually went wrong.

Share Improve this question edited Dec 7, 2010 at 22:09 rf_circ asked Dec 7, 2010 at 20:50 rf_circrf_circ 1,9252 gold badges19 silver badges39 bronze badges 2
  • How are you initialising localtree? – John Parker Commented Dec 7, 2010 at 20:54
  • 1 What error does Firefox give for this? – Matti Virkkunen Commented Dec 7, 2010 at 20:55
Add a ment  | 

2 Answers 2

Reset to default 5

This is a very confusing error message. It turned out that I was stepping one element beyond the end of the array. 'idx' was referencing a non-existent value that I was attempting to treat as an array reference (with the [2]).

Rather than telling me that '2' was null, it should have said that 'localtree[idx]' was null.

The root cause of this was that I had a trailing ma where I defined the array, leading to an extra, null value in the array. In firefox, trailing mas are ignored (like in perl), but in IE, they are significant.

the constant '2' is null or not an object

if (! localtree[idx][2]) {

JavaScript doesn't have constants, at least not yet. And you aren't checking a number, but a member of an array, i.e.: the variable with index number 2 of object localtree[idx] (where idx must contain a string to refer to an object property or an index number to refer to an array).

发布评论

评论列表(0)

  1. 暂无评论