未定义javascript数组值…如何测试该值

Javascript array value is undefined … how do I test for that

本问题已经有最佳答案,请猛点这里访问。

我试图测试一个javascript变量是否未定义。

你会看到,如果我没有首先得到一个警告说"它难以置信",我不会期望predquery[preid]的值是"未定义的"。但我经常这样做,所以我猜我的陈述

1
 predQuery[preId]=='undefined')

未正确匹配未定义的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
if((predQuery.length < preId) || (predQuery[preId]=="") || (predQuery[preId]=='undefined')){
   alert("its unbelievable");
   alert(predQuery[preId]);
   queryPreds[variables] = preId;
   queryObjs[variables] = objId;
   predQuery[preId] = variables;
}
else {
    alert(predQuery[preId]);
   var predIndex = predQuery[preId];
   queryPreds[predIndex] = preId;
   queryObjs[predIndex] = objId;
}

如果需要,我可以添加更多代码。


array[index] == 'undefined'比较阵列索引值到字符串"未定义"。你可能找typeof array[index] == 'undefined',这比较的类型。


你检查它包含一个字符串的数组索引,所以你应该使用"undefined"typeof算子:

1
typeof predQuery[preId] == 'undefined'

或使用undefined:全球房地产

1
predQuery[preId] === undefined

第一路是安全的,因为对全球房地产undefined是可写的,和它可以改变任何其他值。


1
predQuery[preId]=='undefined'

你最喜欢的'undefined'字符串测试了这个测试,你的测试typeof这将返回的字符串。你可能是对的均方根值undefined:特殊的测试

1
predQuery[preId]===undefined

注意:尽量避免在严格的平等。null==undefined- unwanted大致匹配。

然而,有两个方法,你可以得到一undefined价值:是指preIdT predQuery成员或成员,但它是特别有价值的undefined值集。通常,你只想检查它是否存在或不中的案例;这是更合适的in算子:

1
!(preId in predQuery)

有更多的(许多),罗马的方式:

1
2
3
4
5
//=>considering predQuery[preId] is undefined:
predQuery[preId] === undefined; //=> true
undefined === predQuery[preId] //=> true
predQuery[preId] || 'it\'s unbelievable!' //=> it's unbelievable
var isdef = predQuery[preId] ? predQuery[preId] : null //=> isdef = null

干杯!


typeof(predQuery[preId])=='undefined'试试:一般typeof(yourArray[yourIndex])=='undefined'或更多。你是一个"未定义"未返回false,=)


检查是

1
if (predQuery[preId] === undefined)

使用严格的等于操作符。国有企业经营者的比较


这个作品非常好的代码

1
2
3
function isUndefined(array, index) {
    return ((String(array[index]) =="undefined") ?"Yes" :"No");
}