假设我有一个 Javascript 数组,并且一些条目定义如下:
arr["rrr"]=1;
arr["ee"]=2;
arr["qqq"]=22;
...
假设有人尝试检索一个不存在的键的条目,例如:
var retr = arr["ppp"];
retr
var的状态是什么?是它null
还是undefined
别的什么?如何检查数组是否不包含所提供密钥的有效条目?Javascript 中的正确测试是什么?谢谢。
假设我有一个 Javascript 数组,并且一些条目定义如下:
arr["rrr"]=1;
arr["ee"]=2;
arr["qqq"]=22;
...
假设有人尝试检索一个不存在的键的条目,例如:
var retr = arr["ppp"];
retr
var的状态是什么?是它null
还是undefined
别的什么?如何检查数组是否不包含所提供密钥的有效条目?Javascript 中的正确测试是什么?谢谢。
结果未定义。要测试你只需要这样做:
if ("ppp" in arr) {
// do something
} else {
// do something else
}
缺少键返回的值是undefined
。您可以像这样测试密钥是否存在:
var a = [];
a.hasOwnProperty('k'); // false
未定义数组键的返回值为undefined
。正确的测试是
var retr = arr["ppp"];
if(retr!=undefined){
//retr has some value
}
else{
//retr is undefined
}
我尝试了您在 Firebug 中编写的代码。当我尝试访问不存在密钥的条目时
var retr=arr["ppp"];
它返回空值。因此,retr 等于 null。
retr==null; //true
typeof retr=="undefined"; //true