Главная
страница 1страница 2страница 3страница 4

JavaScript

Язык программирования JavaScript был разработан Бренданом Эйком (Brendan Eich) в Netscape Communications как язык сценариев для обозревателей Netscape Navigator, начиная с версии 2.0. В дальнейшем к развитию этого языка подключилась корпорация Microsoft, чьи обозреватели Internet Explorer поддерживают JavaScript, начиная с версии 3.0. Версия Microsoft получила название JScipt, поскольку JavaScript является зарегистрированной маркой фирмы Netscape. В 1996 г. ECMA приняла решение о стандартизации этого языка, и в июне 1997 г. была принята первая версия стандарта под названием ECMAScript (ECMA-262). В апреле 1998 г. этот стандарт был принят ISO в качестве международного под номером ISO/IEC 16262. Мы в последующем изложении основываемся на третьей версии стандарта ECMA (декабрь 1999 г.), но используем название JavaScript, а не ECMAScript по двум причинам:



  • Это название является исторически первым, и под ним данный язык наиболее известен широкому кругу пользователей.

  • Соответствующий тип MIME, а именно "text/javascript", распознается всеми обозревателями, которые поддерживают сценарии на данном языке, в отличие от JScript или ECMAScript.

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

Веб-обозреватель, работающий на компьютере-клиенте, обеспечивает среду, в которой JavaScript имеет доступ к объектам, которые представляют собой окна, меню, диалоги, текстовые области, фреймы, куки и ввод-вывод в Веб-страницу. Кроме того, обозреватель позволяет присоединить сценарии на языке JavaScript к таким событиям, как загрузка и выгрузка страниц и графических образов, нажатие клавиш и движение мыши, выбор текста и пересылка форм. При этом программный код сценариев только реагирует на события и поэтому не нуждается в главной программе. Набор объектов, предоставляемых обозревателем, известен под названием Document Object Model (DOM).

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

Обзор языка

JavaScript - это язык программирования, основанный на объектах: и языковые средства, и возможности среды представляются объектами, а сценарий (программа) на JavaScript - это набор взаимодействующих объектов. Объект JavaScript - это неупорядоченный набор свойств, каждое из которых имеет нуль или более атрибутов, которые определяют, как это свойство может использоваться. Например, если атрибуту свойства ReadOnly (неизменяемый) присвоено значение true (истина), то все попытки программно изменить значение этого свойства будут безрезультатны. Свойства - это контейнеры, которые содержат другие объекты, примитивные значения и методы. Примитивное значение - это элемент любого из встроенных типов: Undefined, Null, Boolean, Number и String; объект - это элемент еще одного встроенного типа Object; метод - функция, ассоциированная с объектом через свойство.

JavaScript содержит несколько встроенных объектов, таких, как Global, Object, Error, Function, Array, String, Boolean, Number, Math, Date, RegExp. Кроме того, JavaScript содержит набор встроенных операций, которые, строго говоря, не обязательно являются функциями или методами, а такжн набор встроенных операторов, управляющих логикой выполнения программ. Синтаксис JavaScript в основном соответствует синтаксису языка Java, но упрощен в сравнении с ним, чтобы сделать язык сценариев легким для изучения. Так, к примеру, декларация переменной не содержит ее типа, свойства также не имеют типов, а декларация функции может стоять в тексте программы после ее вызова.

Общие сведения об объектах

Язык JavaScript, в отличие от языков Java и C++, не содержит классов объектов в строгом смысле слова. Вместо этого он поддерживает конструкторы, которые создают объекты путем выделения для них памяти и инициализации всех или некоторых их свойств. Все конструкторы являются объектами, но не все объекты являются конструкторами. Каждый конструктор имеет свойство prototype, которое используется для реализации наследования, основанного на прототипах, и разделяемых свойств. Объекты создаются путем вызова конструктора в операции new; например new String("Это строка") создает новый объект String. Результат вызова конструктора без new зависит от конструктора. Так, String("Это строка") создает примитивную строку, а не объект.

JavaScript поддерживает наследование, основанное на прототипах. С каждым конструктором связан соответствующий прототип, и каждый объект, созданный конструктором, содержит неявную ссылку на этот прототип (называемый прототипом объекта). Прототип, в свою очередь, может содержать ссылку на свой прототип и так далее. Так образуется цепочка прототипов. Ссылка на свойство объекта - это ссылка на первый прототип в цепочке прототипов объекта, который содержит свойство с данным именем. Иными словами, если данный объект имеет свойство с данным именем, то используется ссылка на это свойство; если нет, то исследуется прототип этого объекта и т. д.

В объектно-ориентированных языках, основанных на классах объектов, текущее состояние реализуется экземплярами классов, методы реализуются классами, а наследование - структурой и поведением. В JavaScript текущее состояние и методы реализуются объектами, а структура и поведение наследуются. Все объекты, которое явно содержат свойство, которое содержит их прототип, разделяют это свойство и его значение. В отличие от языков, основанных на классах, свойства могут динамически добавляться к объектам путем присвоения им значений. В частности, конструкторы не обязаны присваивать значения всем или некоторым свойствам создаваемого объекта.



Базовые определения

После краткого описания языка JavaScript дадим неформальные определения его основных понятий.




Тип

Набор значений данных.

Примитивное значение

Элемент одного из типов Undefined, Null, Boolean, Number или String. Примитивные значения - это данные, которые представляются непосредственно и на самом нижнем уровне реализации языка.

Объект

Элемент типа Object; является неупорядоченным набором свойств, каждое из которых может быть примитивным значением, объектом или функцией. Свойство, являющееся функцией, называется методом.

Конструктор

Функция, которая создает и инициализирует объекты. Каждый конструктор имеет соответствующий прототип, который используется для наследования и разделения свойств.

Прототип

Объект, который используется в JavaScript для реализации наследования структуры, состояния и поведения. Когда конструктор создает объект, последний содержит неявную ссылку на прототип конструктора, позволяющий разрешать ссылки на свойства данного объекта. Свойства прототипа разделяются всеми объектами, созданными на его основе.

Объект языка

Любой объект, который поддерживается реализацией языка JavaScript, а не средой исполнения сценариев. Часть объектов языка являются встроенными; другие создаются в процессе выполнения сценария.

Встроенный объект

Любой объект, который поддерживается реализацией языка JavaScript независимо от среды исполнения и существующий на момент начала исполнения сценария. Все встроенные объекты являются объектами языка.

Объект среды

Любой объект, который не является объектом языка, а поддерживается средой исполнения сценариев.

Неопределенное значение

Примитивное значение, которое означает, что переменной не присвоено никакого значения.

Тип Undefined

Этот тип состоит из единственного значения undefined, которое является неопределенным.

Нулевое значение

Примитивное значение, которое означает нулевую, пустую или несуществующую ссылку.

Тип Null

Этот тип состоит из единственного значения null, которое является нулевым.

Логическое значение

Примитивное значение типа Boolean, означающее истину или ложь.

Тип Boolean

Тип, состоящий ровно из двух значений: true (истина) и false (ложь).

Логический объект

Элемент типа Object, который является экземпляром встроенного логического объекта. Иными словами, логический объект создается выражением new Boolean(value), где value - логическое значение. Результирующий объект имеет неявное (безымянное) свойство типа Boolean.

Строковое значение

Элемент типа String. Предсталяет собой строку символов, т . е. упорядоченный массив из нуля или более символов Unicode (т. е. 16-битовых целых чисел без знака).

Тип String

Этот тип состоит из всех возможных строковых значений.

Строковый объект

Элемент типа Object, который является экземпляром встроенного строкового объекта. Иными словами, строковый объект создается выражением new String(value), где value - строковое значение. Результирующий объект имеет неявное (безымянное) свойство типа String.

Числовое значение

Элемент типа Number. Является непосредственным представлением числа.

Тип Number

Тип, состоящий из всех возможных числовых значений. Точнее говоря, это набор 64-битовых числовых значений формата IEEE 754, включающий специальные значения NaN (не число), положительная бесконечность и отрицательная бесконечность.

Числовой объект

Элемент типа Object, который является экземпляром встроенного числового объекта. Иными словами, числовой объект создается выражением new Number(value), где value - числовое значение. Результирующий объект имеет неявное (безымянное) свойство типа Number.

Бесконечность

Примитивное значение Infinity, являющееся элементом типа Number.

NaN

Примитивное значение NaN (не число), являющееся элементом типа Number.



Размещение кода JavaScript на HTML-странице

Выполнение программы зависит от того, когда и как интерпретатор получает управление. Что, в свою очередь, зависит от функционального применения кода. В общем случае можно выделить четыре способа функционального применения JavaScript:



  • гипертекстовая ссылка (схема URL);

  • обработчик события (в атрибутах, отвечающих событиям);

  • подстановка (entity);

  • вставка (контейнер


<< предыдущая страница   следующая страница >>
Смотрите также:
Глобальная компьютерная сеть – интернет 2 web 0 5 обзор технологий 7
497.86kb.
4 стр.
Глобальная сеть интернет и информационная среда
41.87kb.
1 стр.
Статья раскрывает проблему проектирования новой образовательной среды обучения, основанной на современных информационных и коммуникационных технологиях в условиях применения Интернет, Web-технологий, гипертекста
104.1kb.
1 стр.
Москва, Россия
75.38kb.
1 стр.
Интернет: скрытые угрозы у интернета много имен и свойств. Всемирная компьютерная сеть, способ мгновенной коммуникации, «территория свободы»
86kb.
1 стр.
Общие положения о web-сайтах Сайт от англ website: web — «паутина, сеть»
126.41kb.
1 стр.
Стоит отметить, что в 90-х годах прошлого столетия Интернет рассматривался как глобальная сеть, не имеющая границ, в том числе государственных, с присущей ему географической анонимностью пользователей
129.27kb.
1 стр.
Нормы пользования услугами сети передачи данных и доступа в сеть интернет общие положения
47.33kb.
1 стр.
Программа предпрофильного элективного курса
127.15kb.
1 стр.
Управление корпоративной информационно-образовательной средой на базе интернет-технологий
37.13kb.
1 стр.
В этом разделе мы рассмотрим вопросы подключения к всемирной паутине, безопасности, общения и развлечения в Сети. А также, что для этого необходимо
16.32kb.
1 стр.
Сеть и Интернет Заходим в Пуск->Панель управления->Сеть и Интернет
35.14kb.
1 стр.