2

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

// make sure undefined is undefined
var undefined;

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

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

4

3 回答 3

3

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

在图书馆中,经常看到作者重新定义undefinedundefined确保它们不会破坏。但是风险很小,很少有人会undefined出于明显的原因覆盖!

这背后的理由是:

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

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

(function( undefined ) {

}());
于 2013-08-27T20:58:32.067 回答
1

JS 的坏处在于您实际上可以声明一个名为“未定义”的变量。

如果您想更加安全并 100% 确定 undefined 确实是您所期望的,您可以随时以不同的方式检查 undefined - 通过使用void(这里是MDN 文档):

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

// where: void 1 === *real* undefined
于 2013-08-27T21:00:43.440 回答
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!');
   }

})();
于 2013-08-27T20:58:25.757 回答