检查未定义的值,但它仍未定义

时间:2016-02-19 06:20:13

标签: javascript jquery

我有代码,我只想在定义变量并且length时运行,所以我使用这个条件块:

if (typeof(elem) !== undefined) {
    console.log( 'elem is not undefined' );
    console.log(typeof(elem));
    if (elem.length) {
        // do stuff
    }
}

那么,我如何在控制台中获得此输出? :

elem is not undefined
main.js:214 undefined
main.js:215 Uncaught TypeError: Cannot read property 'length' of undefined

1 个答案:

答案 0 :(得分:0)

好吧,我在输入问题时找到了答案,我想我会分享它以防其他人遇到这个简单的问题。

typeof()返回一个字符串。如果变量未定义,则typeof()的返回将是字符串" undefined",而不是使用保留字undefined的实际值。

所以,我的代码可以简化:

if ((typeof(elem) != "undefined") && (elem.length)) {
    // do stuff
}

将它分成两个单独的if语句只是我在搜索之前首次尝试修复它。