HTML5 Boilerplate jQuery库后备如何工作?

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

 window.jQuery || document.write('') 

第二个脚本行如何检查谷歌的CDN是否已加载? 没有if声明或任何暗示。 如果这听起来很愚蠢,我很抱歉。 有帮助吗?

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

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

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

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