1

我想在对其执行操作之前检查数组中的下一个元素是否存在,但我无法检查它是否未定义。例如:

// Variable and array are both undefined
alert(typeof var1);   // This works
alert(typeof arr[1]); // This does nothing

var arr = [1,1];
alert(typeof arr[1]); // This works now
4

2 回答 2

6
alert(typeof arr[1]); // This does nothing

它没有做任何事情,因为它失败并出现错误:

ReferenceError: arr is not defined

如果您尝试这种方式:

var arr = [];
alert(typeof arr[1]);

然后你会得到你所期望的。但是,执行此检查的更好方法是使用.length数组的属性:

// Instead of this...
if(typeof arr[2] == "undefined") alert("No element with index 2!");

// do this:
if(arr.length <= 2) alert("No element with index 2!");
于 2012-12-24T23:09:01.303 回答
0

使用数组时,在访问数组索引之前,您还应该检查数组本身。

错误的:

if (arr[0] == ...)

好的:

if (typeof arr != "undefined" and arr[0]==......
于 2012-12-24T23:13:47.493 回答