jQuery document.write?

时间:2012-05-21 14:17:55

标签: jquery html5

不确定这是否是发布的正确位置,但是看看我有的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到页面?

2 个答案:

答案 0 :(得分:4)

仅在左侧是“假”的情况下评估||运算符的后半部分。这被称为“短路评估”*

因此当window.jQueryundefined时,它会执行document.write()


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

相反false && x == false

答案 1 :(得分:1)

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

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