我正在阅读一些js库的代码,我看到了:
// make sure undefined is undefined
var undefined;
我已经查找过几次在javascript中检查未定义内容的正确方法,并找到了以下帖子:
这段代码是添加的好东西还是不必要或中间的东西?
答案 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