我正在阅读一些 js 库的代码,我看到了这个:
// make sure undefined is undefined
var undefined;
我之前曾多次查找过在 javascript 中检查未定义内容的正确方法,并找到了以下帖子:
那段代码是添加的好东西,还是不必要的或者中间的东西?
我正在阅读一些 js 库的代码,我看到了这个:
// make sure undefined is undefined
var undefined;
我之前曾多次查找过在 javascript 中检查未定义内容的正确方法,并找到了以下帖子:
那段代码是添加的好东西,还是不必要的或者中间的东西?
在 javascript 中,undefined
是一个有效的变量名。
在图书馆中,经常看到作者重新定义undefined
以undefined
确保它们不会破坏。但是风险很小,很少有人会undefined
出于明显的原因覆盖!
这背后的理由是:
var a;
console.log( a === undefined );
通常,您会更频繁地看到这种形式:
(function( undefined ) {
}());
JS 的坏处在于您实际上可以声明一个名为“未定义”的变量。
如果您想更加安全并 100% 确定 undefined 确实是您所期望的,您可以随时以不同的方式检查 undefined - 通过使用void
(这里是MDN 文档):
// if a is undefined
if (a === void 1) {
}
// where: void 1 === *real* undefined
这根本没有帮助。如果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!');
}
})();