在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})();