不确定这是否是发布的正确位置,但是看看我有的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 lib到页面?
答案 0 :(得分:4)
仅在左侧是“假”的情况下评估||
运算符的后半部分。这被称为“短路评估”*
因此当window.jQuery
为undefined
时,它会执行document.write()
。
* true || x == true
,无论x的值如何,因此左侧操作数给定||
的短路true
运算符将跳过评估表达式的右侧,因为它不会改变结果。
相反false && x == false
。
答案 1 :(得分:1)
由于javascript是一种虚假语言,如果jQuery不可用,window.jQuery
将返回undefined
,等同于false
。
因此,将执行语句的第二部分,它将<script>
标记写入包含jQuery的本地备份版本的文档。