- •12. Сценарии Javascript
- •Характеристики языка Javascript
- •Вставка сценария в html-документ
- •Переменные и типы данных
- •Операторы и управляющие структуры
- •Арифметические операторы
- •Логические операторы
- •Управляющие структуры
- •Встроенные объекты Javascript
- •Создание пользовательских объектов
- •Внешние объекты
- •Пример: карточная игра Blackjack
- •Правила игры
- •Разработка объектной модели
- •Вопросы
12. Сценарии Javascript
Содержание
Характеристики языка Javascript
Вставка сценария в HTML-документ
Переменные и типы данных
Операторы и управляющие структуры
Арифметические операторы
Логические операторы
Управляющие структуры
Встроенные объекты Javascript
Создание пользовательских объектов
Внешние объекты
Пример: карточная игра Blackjack
Правила игры
Разработка объектной модели
Вопросы
Первоначально разработанный в 1995 году Бренданом Эйком (Brendan Eich), работавшим в Netscape, в сотрудничестве с Sun Microsystems, язык сценариев Javascript является объектно-ориентированным языком. Изначально Javascript предназначался для разработки клиентских приложений в веб-браузере с целью расширения пользовательского интерфейса и разработки динамических веб-страниц. В 1997 году язык был стандартизирован Европейской ассоциацией производителей компьютеров (European Computer Manufacturers Association, ECMA) под названием ECMAScript (ECMA-262). Internet Explorer, начиная с версии 3.0 (1996), поддерживает диалект ECMAScript, названный JScript. Как любой живой язык, JScript развивался, и Internet Explorer 8.0 использует версию языка JScript 5.8, основанную на 3 издании стандарта ECMA-262. В целом, диалекты ECMAScript достаточно близки, по этой причине Javascript и JScript часто считаются синонимами.
Несмотря на сходство названий, Javascript не является родственником Java, оба языка наследовали свой синтаксис от языка C.
Характеристики языка Javascript
Javascript поддерживает синтаксис структурного программирования языка C, включая ветвление (инструкции if…, if…else… и switch) и циклы (инструкции for и while ).
Типы данных в Javascript связаны со значениями, а не с переменными. Это означает, что любой переменной может быть присвоено значение одного типа (например, число), затем другого типа (например, строка). Такое поведение иногда называют также нестрогой типизацией.
Javascript почти полностью построен как объектный язык. Фактически, объекты Javascript – это ассоциативные массивы; запись obj.x = 10 эквивалентна obj["x"] = 10 и obj[0] = 10 (полагая, что x является первым по счету свойством объекта obj). Свойства объекта и их значения могут добавляться, изменяться и удаляться динамически.
Функция eval() позволяет выполнять инструкции, заданные в виде строки.
Функции в Javascript являются объектами первого класса, то есть могут присваиваться переменным, передаваться в другие функции в качестве аргумента и возвращаться функциями.
Внутренние функции (определенные внутри других функций) создаются, когда выполняется внешняя функция, и переменные внешней функции доступны для внутренней даже когда внешняя функция завершила работу.
Javascript не использует понятия классов. Наследование осуществляется через механизм прототипов (prototype), то есть клонирования существующих объектов.
Функции могут выступать в качестве конструкторов объектов. В этом случае ключевое слово this относится к создаваемому объекту.
В Javascript нет различий между определением функции и метода. Различие возникает, когда функция вызывается как метод объекта. В этом случае ключевое слово this относится к объекту, чьим методом оказывается функция.
Функции в Javascript могут принимать произвольное число аргументов, в том числе и не описанные при определении функции. Доступ к ним осуществляется как через формальные параметры функции, так и через свойство arguments функции.
