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; } |
如果需要,我可以添加更多代码。
你检查它包含一个字符串的数组索引,所以你应该使用
1 | typeof predQuery[preId] == 'undefined' |
或使用
1 | predQuery[preId] === undefined |
第一路是安全的,因为对全球房地产
1 | predQuery[preId]=='undefined' |
你最喜欢的
1 | predQuery[preId]===undefined |
注意:尽量避免在严格的平等。
然而,有两个方法,你可以得到一
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 |
干杯!
检查是
1 | if (predQuery[preId] === undefined) |
使用严格的等于操作符。国有企业经营者的比较
这个作品非常好的代码
1 2 3 | function isUndefined(array, index) { return ((String(array[index]) =="undefined") ?"Yes" :"No"); } |