Javascript jQuery'的含义;这是前5行代码

Javascript jQuery'的含义;这是前5行代码,javascript,jquery,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

我有点想了解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 */
});
这种语法与我所见过的任何语法都不一样,或者它太复杂、太庞大,无法找到答案。我搜索了整个谷歌,但没有找到相关的结果。这是什么意思

更具体地说:

  • 这个代码有什么作用
  • 为什么连续使用两个
    运算符,但中间没有
    ?(第2、3行)
  • 的目的是什么运算符在第一行中的函数之前,以及为什么在第3行中的
    0
    之前也使用该运算符?如果
    0
    false
    ,则为
    !0
    平均值
    真值

如果您试图打开jQuery的分发文件,您可能会发现缩小和模糊的代码,超出了可读性。如果您尝试从源代码中学习可能会更好,更具体地说,您发布的代码片段似乎是文件。如果您试图打开jQuery的发行版文件,您可能会发现缩小了的、模糊的代码,超出了可读性。如果您尝试从源代码中学习可能会更好,更具体地说,您发布的代码片段似乎是文件。这都是很好的注释

条件?expre1:expre2
它的名字我知道三元运算符。在
module.exports?
之后的第二行中,紧跟着另一个
。我认为您应该检查一个未压缩的。你想知道的是:谢谢@MMhunter。我找不到一个有评论的,我自己解压了一个缩小的。是否有注释过的2.2.4版本?o是的,您可以在jQuery CDN上找到它们。
条件?expre1:expre2
它的名字我知道三元运算符。在
module.exports?
之后的第二行中,紧跟着另一个
。我认为您应该检查一个未压缩的。你想知道的是:谢谢@MMhunter。我找不到一个有评论的,我自己解压了一个缩小的。有评论过的2.2.4版本吗?是的,你可以在jQuery CDN上找到它们。谢谢你让我知道@Rando。我以为只有我看不懂那个密码。谢谢你让我知道@Rando。我以为只有我看不懂密码。