0

不确定这是否是正确的发布位置,但是看看我的 HTML5 样板...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
<script>window.jQuery || document.write('<script src="_includes/js/libs/jquery-1.6.2.min.js"><\/script>')</script>

现在我已经阅读了第二个脚本,如果第一个脚本失败,那么它是一个后备,但是如何?我一直以为|| 是一个 OR 运算符,对我来说,它看起来就像是在页面加载时将旧的 jQuery 库写入页面?

4

2 回答 2

4

||仅当左侧为“假”时才评估运算符的后半部分。这被称为“短路评估”*

所以当window.jQueryundefined,它会document.write()


* ,无论 x 的值如何,因此为其左侧操作数指定true || x == true的短路运算符将跳过计算表达式的右侧,因为它不会更改结果。||true

反之false && x == false

于 2012-05-21T14:19:42.853 回答
1

因为 javascript 是一种虚假语言,如果 jQuery 不可用,window.jQuery将返回undefined等于false.

因此,将执行该语句的第二部分,将<script>标记写入包含 jQuery 本地备份版本的文档中。

于 2012-05-21T14:19:17.377 回答