Тема 2.7 Подготовка сценариев и интерактивность

 

EcmaScript

Язык возник на основе нескольких технологий, самыми известными из которых являются языки JavaScript и JScript. Разработка первой редакции спецификации началась в ноябре 1996 года. Принятие спецификации состоялось в июне 1997 года. Будучи отправленной в ISO/IEC JTC 1 для принятия по процедуре Fast-Tracking, она послужила основой международного стандарта ISO/IEC 16262. В июне 1998 года общим собранием ECMA была принята вторая редакция ECMA-262, соответствующая ISO/IEC 16262. Третья редакция спецификации отличалась от предыдущей введением поддержки регулярных выражений, улучшением поддержки строк, введением новых управляющих конструкций, механизма исключений, форматирования при численном вводе и некоторые другие изменения.

В ECMAScript поддерживаются пять примитивных типов данных:

- числовой (англ. Number);

- строковый (англ. String);

- логический (англ. Boolean);

- нулевой (англ. Null);

- неопределённый (англ. Undefined).

Числовой тип данных в ECMAScript соответствует 64-битному формату чисел с плавающей запятой, определённому стандартом IEEE 754-2008 за исключением того, что различные значения Not-a-Number, определяемые в стандарте, представляются в данном языке единственным специальным значением NaN. Нулевой и неопределённый типы данных Дэвидом Флэнаганом неформально причисляются к "тривиальным" типам, поскольку каждый из них определяет только одно значение.

Также в языке имеется "составной" тип данных:

- объектный (англ. Object).

Помимо перечисленных шести типов данных в ECMAScript имеется поддержка ещё семи, используемых исключительно для хранения промежуточных результатов вычисляемых выражений:

- ссылочный (англ. Reference);

- списочный (англ. List);

- заключительный (англ. Completion);

- описатель свойства (англ. Property Descriptor);

- идентификатор свойства (англ. Property Identifier);

- лексическое окружение (англ. Lexical Environment);

- запись окружения (англ. Environment Record).

В ECMAScript нет оператора, позволяющего проверить, относится ли свойство непосредственно к объекту или является унаследованным. Такая проверка осуществляется с помощью метода has Own Property. В связи с тем, что данный метод не является оператором, он может быть переписан любым другим свойством.

Оператор + является единственным арифметическим оператором в языке, который перегружен для строковых аргументов. Если хотя бы один из операндов - строка, + действует как конкатенатор, в противном случае выполняется сложение.

В отличие от языков, где void является типом данных, в ECMAScript это оператор, возвращающий значение undefined.

Функции в ECMAScript являются объектами. Конструктор, с помощью которого они создаются - Function. Функции, как и любые другие объекты, могут храниться в переменных, объектах и массивах, могут передаваться как аргументы в другие функции и могут возвращаться функциями. Функции, как и любые другие объекты, могут иметь свойства. Существенной специфической чертой функций является то, что они могут быть вызваны.

В ECMAScript имеется два типа функций:

- внутренние функции (например, parseInt),

- функции, определённые в тексте программы.

В "академическую" эпоху развития всемирной паутины существовал лишь один механизм, позволявший наладить обратную связь веб-ресурсов с посетителями-CGI(Common Gateway Interface, общий шлюзовой интерфейс).

Интерфейс CGI расширяет функциональность веб-сервера. Благодаря этой технологии сервер приобретает способность исполнять на свойе стороне произвольный программный код. При этом сервер имеет возможность передавать исполняемому приложению некие пользовательские данные (отправляемые, например, при помощи тех же форм) и получать результаты его работы (как правило, в виде HTML-кода). Сгенерированные "на лету" страницы отсылаются клиенту точно так же, как и покоящиеся на диске статические документы.

Благодаря своей универсальности технология CGI живет и по сей день-в качестве CGI-скриптов могут выступать приложения, написаннные с применением практически любых языков программирования, включая даже в той или иной мере "усеченные" по своим возможностям языки командных процессоров операционных систем. Разработчику достаточно лишь соблюсти ряд общих требований.

Сегодня старый добрый интерфейс CGI оттесняют в сторону многочисленные конкуренты, обладающие индивидуальными особенностями, достоинствами и недостатками, но решающие, в сущности, похожие задачи. PHP (Personal Home Page); ASP(Active Server Pages) от компании Microsoft; Java-сервлеты JSP(Java Server Pages) от Sun Microsystems; ColdFusion от Allaire-вот далеко не полный перечень современных серверных технологий.

Идея распространить "динамику" на клиентскую сторону принадлежит компании Netscape. Так, в виде одного из расширений браузера Netscape Navigator 2.0 миру был явлен язык сценариев JavaScript 1.0, разработанный Бренданом Эйчем в 1995г.

Microsoft не заставила себя долго ждать-поддержка JavaScript (правда, под именем JScript, ибо название JavaScript-это собственность компании Netscape) появилась в Internet Explorer 3.0.

Позже JavaScript был стандартизирован организацией ECMA (в прошлом-European Computer Manufacturers Association, Европейская ассоциация производителей компьютеров), занимающейся сертификацией решений в области информационных технологий и телекоммуникаций (Information and Communication Technology, ICT) и бытовой электроники (Consumer Electronics, CE), а затем обрел статус стандарта ISO. Соответствующие стандарты имеют номера ECMA-262 ISO 16262, а сам определяемый ими язык носит имя ECMAScript. Впрочем, ни это название, ни придуманное в стенах Microsoft наименование JScript не прижились среди разработчиков. Куда как чаще используется первоначальное имя языка, данное ему непосредственным создателем-JavaScript.