javascript typeof item === "undefined"永远不会返回 true

标签 javascript

在下面的代码示例中,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/

相关文章:

javascript - 使用 setTimeout 引导进度条进度

javascript - 用 jQuery/prototype 解析 onclick ="setLocation(...)"

javascript - karma typescript 找不到模块

javascript - Typescript 对象 [对象数组] 在 Ionic 3 中没有方法 'includes'

javascript - react-native 构建错误(开发服务器返回响应错误代码 : 500)

javascript - jQuery 绑定(bind)事件序列

javascript - 包括 jquery 移动多页站点中的页眉和页脚

javascript - nodejs - 这是哪个 "this"?

javascript - 如何在 Javascript/Node 中的异步函数上调用 Await 后超时

php - 修改此 JS Focus 函数以使用动态设置 Select 选项的 PHP 函数