JavaScript 检查变量是否存在(已定义/初始化)

哪种检查变量是否已初始化的方法更好/正确?(假设变量可以容纳任何东西(字符串,int,对象,函数等))

if (elem) { // or !elem

if (typeof elem !== 'undefined') {

if (elem != null) {

答案 1

您需要 typeof 运算符。具体说来:

if (typeof variable !== 'undefined') {
    // the variable is defined
}

答案 2

运算符将检查变量是否真的未定义。typeof

if (typeof variable === 'undefined') {
    // variable is undefined
}

与其他运算符不同,该运算符在与未声明的变量一起使用时不会引发 ReferenceError 异常。typeof

但是,请注意,将返回 。我们必须小心避免将变量初始化为 的错误。为了安全起见,我们可以改用以下方法:typeof null"object"null

if (typeof variable === 'undefined' || variable === null) {
    // variable is undefined or null
}

有关使用严格比较而不是简单相等的更多信息,请参阅:
在JavaScript比较中应该使用哪个等于运算符(== vs ===)?=====