使用'var undefined'测试未定义是否有任何问题

Mar*_*own 4 javascript

对于undefined,这个测试有什么问题吗?

var undefined;

if(x == undefined){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

或这个:

function undefined(x){
    return typeof x == 'undefined';
}

if(undefined(x)){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

jsLint不会抛出一个保留字的错误,但代码似乎仍然有效......

ale*_*lex 7

不要重新定义undefined.

其他程序员期望undefined永远undefined不是功能的功能.

人们经常使用typeof运算符来确保在用于测试变量时不会抛出引用错误undefined.

如果有人对你这么做,你可以使用......

undefined = void 0;
Run Code Online (Sandbox Code Playgroud)

......把它还原回来


Dem*_*cht 5

由于undefined不是Javascript关键字,它本身没有任何问题.

但是,您将覆盖一个经常用于检查第二个示例中未定义变量的核心变量作为函数.如果我在任何人的代码中看到我正在审查的话,我会尖叫并禁止那个人作为提交者.