1

这是 html5 样板和一般 javascript 的初学者问题,但我似乎无法在任何地方找到答案,所以就在这里......

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>

第二个脚本行如何检查google的CDN是否已经加载?没有 if 语句或任何建议。如果这听起来很愚蠢,我很抱歉。有什么帮助吗?

4

2 回答 2

3

在这种||情况下是 if 语句。如果window.jQuery返回TRUE,则or语句 (||) 之后的任何内容都不会被加载。如果是FALSE,那么它将继续加载 jquery。

编辑:只是为了澄清一点。如果您if (var1 && var2)在 javascript 中执行此操作,它将评估 BOTH 变量以检查它们是否都为真。如果你做到了if (var1 || var2),那么如果第一个变量的计算结果为 TRUE,则无需计算表达式的其余部分,因为无论哪种方式,它都会自动为真。

在这种情况下,这正是您的代码正在做的事情。如果window.jQuery为 FALSE(表示未加载 jQuery),则继续并评估下一个表达式——在这种情况下,它会从本地文件加载 jquery。它只是没有包含在 IF 语句中,因为它不是必需的。

于 2013-08-11T15:06:35.240 回答
2

如果从谷歌 CDN 或任何地方加载 jQuery 文件,它会被添加jQuerywindow对象的属性。脚本的第二行检查是否window.jQuery已定义,如果未定义,则执行语句的另一部分,||该语句添加具有本地 jQuery 文件位置 src 属性的脚本标记以加载它。

于 2013-08-11T15:07:58.337 回答