在下面的代码示例中,typeof item === "undefined"永远不会返回 true。我试图从 XML 中获取一个属性,如果该属性不在 XML 中,它将返回“未定义”,但我无法捕获它是否已返回未定义,firebug 将“typeof item”显示为“对象” ”
var item;
var itemIDs = {};
if (items.status == 200)
{
var rows = items.responseXML.getElementsByTagName('z:row');
for(i=0;i<rows.length;i++)
{
//rows[i].attr(attribute);
item = rows[i].getAttribute(attribute);
if(typeof item === "undefined")
{
continue;
}
else
{
item = item.match(/[^\d+;#][\w\W]+/);
itemIDs[item] = 1 ;
}
}
}
else
{
alert('There was an error: ' + items.statusText);
}
return itemIDs;
编辑:我将条件更改为 if(item == undefined),代码现在按预期工作
编辑2:仔细检查它,项目变量从来不为 null ,它是“未定义”
最佳答案
getAttribute 返回一个对象(有效对象或空对象)。因此检查 (typeof item === "undefined")
不正确。它应该是 (item === null)
。
关于javascript typeof item === "undefined"永远不会返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7073934/