Я вижу, что следующий HTML-код много использовал для загрузки jQuery из сети доставки контента, но возвратился к локальной копии, если CDN недоступен (например, в Документы Modernizr):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.1.min.js">\x3C/script>')</script>
Мой вопрос: почему последний символ <
в выражении document.write()
заменяется escape-последовательностью \x3C
? <
является безопасным символом в JavaScript и даже используется ранее в той же строке, поэтому зачем бежать туда? Разве только для предотвращения неправильной реализации браузером </script>
внутри строки есть реальный тег script end? Если да, то действительно ли есть какие-то браузеры, которые не смогли бы это сделать?
В качестве последующего вопроса я также видел вариант, использующий unescape()
(как указано в этом ответе) в дикой природе пару раз, Есть ли причина, почему эта версия всегда заменяет все символы <
и >
?