关于在此代码中使用“undefined”的说明?

时间:2013-08-27 20:55:47

标签: javascript

我正在阅读一些js库的代码,我看到了:

// make sure undefined is undefined
var undefined;

我已经查找过几次在javascript中检查未定义内容的正确方法,并找到了以下帖子:

这段代码是添加的好东西还是不必要或中间的东西?

3 个答案:

答案 0 :(得分:3)

在javascript中,undefined是有效的变量名称。

在图书馆中,通常会看到作者将undefined重新定义为undefined以确保它们不会中断。但是风险很小,很少有人因为显而易见的原因而覆盖undefined

这背后的理由是:

var a;
console.log( a === undefined );

通常,您会更频繁地看到这种形式:

(function( undefined ) {

}());

答案 1 :(得分:1)

这根本没有帮助。如果为undefined分配了不同的值(仅在较旧版本的Javascript中可以使用),则该行不会更改该事实。你可以用这个:

var a;

;(function(undefined){

   // Here undefined is definitely undefined, 
   // so it is safe to test for undefined using ===:
   if(a === undefined){
     console.log('a is undefined!');
   }

})();

答案 2 :(得分:1)

关于JS的坏处是你实际上可以声明一个名为'undefined'的变量。

如果您想要更安全并且100%确定未定义实际上是您所期望的,您可以始终以不同的方式检查未定义 - 使用void(这里是MDN doc) :

// if a is undefined
if (a === void 1) {
}

// where: void 1 === *real* undefined