Россия, Звенигород |
Скрипты
5.1. Роль JavaScript как языка
JavaScript - член семьи языков с C-подобным синтаксисом. Среди самых известных его "родственников" C и ANSI C, Objective-C, C++, Java, PHP, C# и awk.
У этих языков похожий синтаксис и немного - структура. Все они являются процедурными языками третьего поколения, то есть программы на них пишутся как последовательности упорядоченных шагов. У них у всех есть ключевое слово if. Некоторые из этих языков достаточно развиты и имеют поддержку объектов. Объекты предоставляют структуры уровнем выше процедурных шагов.
Качества, присущие JavaScript, делают этот язык (почти) уникальным членом данной группы. Он спроектирован как в перспективе самый доступный и легкий язык в своей семье. Он также создан, чтобы быть универсальным языком. Этот язык легко переносим, требует небольших ресурсов и не нуждается в поддержке традиционного компилятора. Это легкость делает его очень привлекательным для многих задач.
Код JavaScript запускается внутри интерпретатора, виртуальной машины вроде JVM для Java, но это лишь малая часть того, что дает описываемая технология. JavaScript может использоваться во встроенных устройствах, хотя эти устройства должны поддерживать 32-битные сдвиги и операции над числами с плавающей запятой. Так как JavaScript-код интерпретируется, для переменных используется позднее связывание и слабая типизация. Это приводит к созданию среды, в которой очень легко заставить маленькие программы работать быстро, но сложно избавляться от ошибок в больших программах.
Так как JavaScript - довольно ограниченный язык, он во многом зависит от другого программного обеспечения (которое часто называют базовым). В этом проявляется сходство этого языка с C, который тоже мало что может без помощи своих библиотек stdio или их эквивалентов. Платформа Mozilla в виде набора библиотек и исполняемых файлов предоставляет базу для интерпретатора JavaScript.
Так как базовое ПО обычно достаточно велико, большая часть времени, затраченная на написание JavaScript-скриптов, уходит на то, чтобы выяснить, что может предложить базовое ПО. В Mozilla JavaScript играет примерно ту же роль, что и Visual Basic for Applications (VBA) в Microsoft Word и Microsoft Excel. С таким способом работы с языком знакомы и web-разработчики.
5.2. Стандарты, браузеры и <script>
Mozilla поддерживает стандарт ECMA-262, а точнее ECMAScript версии 1, редакция 3. Этот стандарт также называется ISO-16262. ISO - Международная организация по стандартизации (хотя по-английски это и пишется как "international standards organization", ISO - не аббревиатура). ECMA - Европейская ассоциация производителей ЭВМ. Их адреса в Internet - http://www.iso.org и http://www.ecma.ch соответственно. Стандарты ECMAScript в формате PDF можно получить бесплатно. С некоторыми оговорками этот стандарт можно использовать как настольный справочник по языку. Существует и два других стандарта ECMAScript, но Mozilla не поддерживает ни один из них.
ECMA-327 "ECMAScript Compact Profile" - почти идентичная версия ECMAScript, предназначенная для использования во встроенных системах. В ней отсутствуют некоторые функции, которые считаются достаточно сложными для реализации в таких устройствах. Этот стандарт можно рассматривать как попытку создать конкурента языку WAPScript, а также всем остальным языкам, предназначенным для использования во встроенных системах.
ECMAScript - это официальное название языка JavaScript, так как товарным знаком Java владеет Sun Microsystems. Защита товарного знака включает в себя запрет на использование другими компаниями слов, производных от текущего знака или расширяющих его. Давным-давно, еще до официального появления JavaScript, кодовым названием этого языка было LiveScrpt. Реализация третьей редакции ECMA-262 в Mozilla называется JS 1.5, имя соответствующего проекта - SpiderMonkey. Это реализация интерпретатора в виде C-библиотеки.
SpiderMonkey также поддерживает работу с более ранними версиями JavaScript, в том числе несколько необычную версию 1.2. Эта версия содержала множество новых функций, из которых многие так и не приобрели популярность. При необходимости можно включить поддержку более ранних версий, следуя подходу первых браузеров Netscape. В XUL- приложениях всегда следует использовать последнюю доступную версию языка. Для других языков разметки, например, HTML, можно выбирать любую версию. Тег <script> поддерживается и HTML, и XUL и позволяет выбирать версию языка.
Вот правильный способ включать JavaScript-код в XML-документ:
<script type="application/x-javascript" src="code.js/>
Использование следующего варианта не приветствуется, поэтому лучше избегать его, хотя это тоже будет работать:
<script type="text/javascript" src="code.js/>
Для выбора конкретной версии JavaScript можно делать так:
<script type="JavaScript1.2" src="code.js/>
Наконец, следующий способ подразумевает, что код скрипта написан на языке JavaScript последней версии:
<script src="code.js/>
Для нового приложения Mozilla идеален синтаксис первого примера. Последний вариант - полезная альтернатива, но ради аккуратности и безупречности следует всегда добавлять атрибут type. У всех этих примеров кодировка по умолчанию - encoding="UTF-8".
В "Верстка с XUL" , "Проектирование с XUL", в разделе "Хороший стиль кодирования на XUL" объясняется, почему JavaScript-код всегда должен храниться вне XML-документа в отдельном файле. В разделе "Использование XPCOM-компонентов" этой лекции будет показано, как включать один JavaScript-файл в другой.
Организация Mozilla предоставляет и второй интерпретатор JavaScript, написанный не на C, а на Java. Эта версия интерпретатора называется Rhino и не используется и не собирается вместе с платформой Mozilla; тем не менее, она доступна для загрузки. Она также совместима со стандартом ECMA-262 версии 1, редакция 3.