2012-05-21 2 views
0

Не уверен, если это правильное место для размещения, но глядя на шаблонный HTML5 у меня есть ...jQuery document.write?

<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

Вторая половина оператора || оценивается только в том случае, если левая сторона «ложна». Это известно как «оценка короткого замыкания» *

Так что, когда window.jQuery является undefined, это делает document.write().


* true || x == true, независимо от значения х, так что короткое замыкание оператора || дано true для его левого операнда будет пропускать оценки правую руку выражения, поскольку он не меняет результата.

Искросно false && x == false.

+0

Спасибо! Всегда задавался вопросом ... – Liam

1

Поскольку javascript является фальшивым языком, если jQuery недоступен window.jQuery вернет undefined, что соответствует false.

Следовательно, будет выполнена вторая часть инструкции, которая записывает тег <script> в документ, содержащий локальную резервную версию jQuery.