7

John Resig关于他如何构建 jQuery 1.4 的幻灯片中,他提到了他undefined在 jQuery 闭包中添加了一个变量,因为“我们可以重用(变量)”。

undefined不是一个普通的变量:

> var undefined = 4
  undefined
> undefined
  undefined

因此,我们知道 undefined 不是变量。那么为什么要undefined在 jQuery 源代码中重新定义一个?

幻灯片 31

4

2 回答 2

10

因为在某些 JavaScript 引擎中可以设置undefined为一个值。这是为了确定undefined是真的undefined

于 2013-07-25T14:27:16.910 回答
5

除了 +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})();
于 2013-07-25T14:29:11.837 回答