在John Resig关于他如何构建 jQuery 1.4 的幻灯片中,他提到了他undefined
在 jQuery 闭包中添加了一个变量,因为“我们可以重用(变量)”。
undefined
不是一个普通的变量:
> var undefined = 4
undefined
> undefined
undefined
因此,我们知道 undefined 不是变量。那么为什么要undefined
在 jQuery 源代码中重新定义一个?
在John Resig关于他如何构建 jQuery 1.4 的幻灯片中,他提到了他undefined
在 jQuery 闭包中添加了一个变量,因为“我们可以重用(变量)”。
undefined
不是一个普通的变量:
> var undefined = 4
undefined
> undefined
undefined
因此,我们知道 undefined 不是变量。那么为什么要undefined
在 jQuery 源代码中重新定义一个?
因为在某些 JavaScript 引擎中可以设置undefined
为一个值。这是为了确定undefined
是真的undefined
。
除了 +Rocket Hazmat 的回答之外,当您的代码undefined
经常使用时,您可以在压缩后稍微减小文件大小。这是因为局部变量undefined
的名称可能会被压缩器破坏,而全局变量undefined
可能不会:
foo === undefined;
// ^----- don't touch this, put "undefined" in the compressed result
(function (undefined) {
foo === undefined;
})();
// may however be mangled to
(function(u){foo===u})();