jQuery的前5行代码的含义

时间:2016-07-06 09:48:33

标签: javascript jquery

我有兴趣了解jQuery代码是如何工作的,但是当我打开jQuery文件时,我偶然发现了这个:

! function(a, b) {
    "object" == typeof module && "object" == typeof module.exports ?
    module.exports = a.document ? b(a, !0) : function(a) {
        if (!a.document) throw new Error("jQuery requires a window with a document");
        return b(a)
    } : b(a)
}("undefined" != typeof window ? window : this, function(a, b) {
/*contains the rest of the code */
});

这种语法不同于我所见过的任何东西,或者它太复杂和庞大而无法找到。我搜索了整个Google,但我没有找到相关结果。这是什么意思?

更具体地说:

  • 此代码的用途是什么?
  • 为什么两个?运算符在没有:的情况下连续使用? (第2,3行)
  • !运算符在第一行中的函数之前的目的是什么?为什么在第3行中0之前也使用它?如果0false,那么!0true吗?

1 个答案:

答案 0 :(得分:2)

如果您尝试打开jQuery的分发文件,您可能会发现缩小和混淆的代码,超出可读性。如果您尝试从Github上的源代码中学习,更具体地说,您发布的代码段似乎是this文件,那么您可能会感觉更好。这一切都很好评论