Ank*_*kur 31 javascript arrays undefined
我试图测试是否未定义Javascript变量.
你会看到我并不期望predQuery [preId]的值是'未定义的'如果我没有先得到一个警告说"它难以置信".但我经常这样做,所以我猜我的说法
predQuery[preId]=='undefined')
Run Code Online (Sandbox Code Playgroud)
未正确匹配未定义的元素.
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;
}
Run Code Online (Sandbox Code Playgroud)
如果需要,我可以添加更多代码.
dec*_*eze 65
array[index] == 'undefined'将数组索引的值与字符串"undefined"进行比较.
您可能正在寻找typeof array[index] == 'undefined',比较类型.
CMS*_*CMS 13
你正在检查它的数组索引是否包含一个字符串"undefined",你应该使用typeof运算符:
typeof predQuery[preId] == 'undefined'
Run Code Online (Sandbox Code Playgroud)
或者使用undefined全局属性:
predQuery[preId] === undefined
Run Code Online (Sandbox Code Playgroud)
第一种方法更安全,因为undefined全局属性是可写的,并且可以更改为任何其他值.
predQuery[preId]=='undefined'
Run Code Online (Sandbox Code Playgroud)
你正在测试字符串 'undefined' ; 你把这个测试与typeof将返回一个字符串的测试混淆了.您可能意味着要针对特殊值进行测试undefined:
predQuery[preId]===undefined
Run Code Online (Sandbox Code Playgroud)
请注意strict-equality运算符以避免通常不需要的匹配null==undefined.
但是,有两种方法可以获取undefined值:要么preId不是其成员predQuery,要么是成员但具有设置为特殊undefined值的值.通常,您只想检查它是否存在; 在这种情况下,in运营商更合适:
!(preId in predQuery)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
115661 次 |
| 最近记录: |