Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
1. Что такое JavaScript? JavaScript это созданный фирмой Netscape межплатформенный объектно-ориентированный язык скриптинга (сценариев).
JavaScript это небольшой компактный язык; он не используется для создания самостоятельных приложений, а разработан специально для упрощенного внедрения в другие приложения и продукты, такие как web-браузеры. Находясь внутри рабочей среды-хозяина,
JavaScript может подключаться к объектам этой среды для предоставления программного управления ими.
Ядро
JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы.
JavaScript может быть расширено для различных целей путём дополнения его новыми объектами; например:
- Клиентский J
JavaScript расширяет ядро языка, добавляя объекты управления браузером (Navigator или другой аналогичный web-браузер) и Document Object Model/Объектную Модель Документа (DOM). Например, клиентские расширения позволяют приложению размещать элементы на HTML-форме и реагировать на пользовательские события, такие как щелчок мышью, ввод данных в форму или навигация по страницам.
- Серверный
JavaScript расширяет ядро языка, добавляя объекты, относящиеся к запуску JavaScript на сервере. Например, серверные расширения позволяют приложению взаимодействовать с реляционной базой данных, сохраняя информацию между вызовами приложения, или выполнять манипуляции с файлами на сервере.
Посредством функциональности LiveConnect, Вы можете осуществлять взаимодействие кодов Java и
JavaScript Из
JavaScript Вы можете инстанциировать Java-объекты и получать доступ к их public-методам и полям. Из Java Вы можете иметь доступ к объектам, свойствам и методам
JavaScript
Netscape изобрела
JavaScript и
JavaScript был впервые использован в браузерах Netscape.
2. JavaScript и Java JavaScript и Java похожи друг на друга, но имеют и фундаментальные отличия. Язык
JavaScript похож на Java, не не имеет статической типизации Java и строгой проверки типов.
JavaScript поддерживает большую часть расширений синтаксиса Java и базовых конструкций управления потоком.
В отличие от системы времени компиляции классов Java, построенной на объявлениях,
JavaScript поддерживает систему времени выполнения на базе небольшого количества типов данных: числовых, Булевых и строковых значений.
JavaScript имеет объектную модель на базе прототипов, а не на более привычной базе классов. Модель на базе прототипов предоставляет динамическое наследование; то есть то, что наследуется, может отличаться для каждого конкретного объекта.
JavaScript также поддерживает функции без каких-либо требований к их объявлению. Функции могут быть свойствами объекта, выполняя свободно типизированные методы.
JavaScript является очень свободным языком по сравнению с Java. Вы не должны объявлять все переменные, классы и методы. Вы не должны заботиться о том, какие методы являются public, privateили protected, и не должны реализовывать интерфейсы. Значения, возвращаемые переменными, параметрами и функциями, не типизированные явно.
Java является языком программирования на базе классов, разработанным для быстрого выполнения и безопасности типов. Безопасность типов означает, к примеру, что Вы не можете привести Java integer к ссылке на объект или получить доступ к private-памяти, нарушив байтовый код Java. Модель Java на базе классов означает, что программы состоят исключительно из классов и их методов. Наследование классов Java и строгая типизация в целом требуют тесно связанной иерархии объектов. Эти требования делают язык Java более сложным, чем
JavaScript
В противоположность этому,
JavaScript по духу и сути ведёт своё происхождение от линии компактных, динамически типизируемых языков, таких как HyperTalk и dBASE. Эти языки скриптинга предоставляют утилиты программирования для более широкой аудитории, поскольку имеют упрощённый синтаксис, специализированную встроенную функциональность и минимальные требования при создании объектов.
Таблица 1.1 JavaScript в сравнении с Java
JavaScript | Java | Объектно-ориентированный. Нет различий между типами объектов. Наследование осуществляется через механизм прототипов, и свойства и методы могут добавляться к объекту динамически | На базе классов. Объекты поделены на классы и экземпляры с наследованием по всей иерархии классов. Классы и экземпляры не могут иметь динамически добавляемые свойства и методы | Типы данных переменных не объявляются (динамическая типизация) | Типы данных переменных обязаны быть объявлены (статическая типизация) | Не может автоматически записывать на жёсткий диск | Не может автоматически записывать на жёсткий диск |
Дополнительную информацию об различиях между
JavaScript и Java см. в Главе 8, Объектная Модель. Детали.
3. JavaScript и спецификация ECMA Netscape изобрела
JavaScript , и
JavaScript был впервые использован в браузерах фирмы Netscape. Но Netscape работает совместно с ECMA (European Computer Manufacturers Association/Европейская Ассоциация Производителей Компьютеров) для создания стандартизованного международного языка программирования на базе ядра
JavaScript . ECMA является ассоциацией международных стандартов в области информации и систем коммуникации. Стандартизованная версия
JavaScript , называемая **ECMAScript**, ведёт себя совершенно одинаково во всех приложениях, поддерживающих этот стандарт. Компании могут использовать этот открытый стандартный язык для разработки своих реализаций
JavaScript . Первая версия стандарта ECMA задокументирована в спецификации ECMA-262.
Стандарт ECMA-262 также одобрен ISO (International Organization for Standards) как ISO-16262. Вы можете найти PDF-версию ECMA-262 на web-сайте Mozilla. Вы можете также найти эту спецификацию на web-сайте ECMA. Спецификация ECMA не описывает Document Object Model (DOM), которая стандартизована консорциумом World Wide Web Consortium (W3C). DOM определяет способ, которым объекты HTML-документа экспонируются в Вашем скрипте.
3.1. Соотношение между версиями JavaScript и ECMA Netscape тесно сотрудничает с ECMA для создания спецификации ECMA. В следующей таблице описаны соотношения между версиями
JavaScript и ECMA.
Таблица 1.2 Версии JavaScript и ECMA
Версия JavaScript | Соотношение с Версией ECMA | JavaScript1.1 | ECMA-262, Edition 1 базируется на JavaScript 1.1. | JavaScript1.2 | ECMA-262 не была завершена, когда появилась версия JavaScript 1.2. JavaScript 1.2 не полностью совместима с ECMA-262, Edition 1 по следующим причинам:
- Netscape разработал в JavaScript 1.2 дополнительные возможности, которые не вошли в ECMA-262.
- ECMA-262 добавила две новые возможности: интернационализация через Unicode и универсальное поведение на всех платформах. Некоторые возможности JavaScript1.2, такие как объект Date, были платформозависимыми и вели себя по разному на разных платформах.
| JavaScript1.3 | JavaScript 1.3 полностью совместим с ECMA-262, Edition 1. JavaScript 1.3 устранил несоответствие между JavaScript 1.2 и ECMA-262, сохранив все дополнительные возможности JavaScript 1.2, за исключением == и !=, которые были изменены для обеспечения соответствия с ECMA-262. | JavaScript1.4 | JavaScript 1.4 полностью совместим с ECMA-262, Edition 1. Третья версия спецификации ECMA была не закончена, когда JavaScript 1.4 вышел в свет. | JavaScript1.5 | JavaScript 1.5 полностью совместим с ECMA-262, Edition 3. |
Примечание: ECMA-262, Edition 2 содержал незначительные редакторские поправки и исправления спецификации Edition 1. Рабочая группа TC39 ECMA работает в настоящее время над ECMAScript Edition 4, которая соответствует будущей версии JavaScript – JavaScript 2.0.
Книга Ядро JavaScript. Справочник. указывает, какие возможности языка совместимы с ECMA.
JavaScript всегда будет содержать возможности, не вошедшие в спецификацию ECMA; JavaScript совместим с ECMA, предоставляя, в то же время, дополнительные возможности.
3.2. Документация JavaScript и спецификация ECMA Спецификация ECMA это набор требований по реализации ECMAScript; она необходима, если Вы хотите убедиться, что данная возможность JavaScript поддерживается ECMA. Если Вы планируете писать код JavaScript, использующий только поддерживаемые ECMA возможности, то Вам, возможно, понадобится просмотреть и спецификацию ECMA.
Документ ECMA не предназначен для помощи программистам – создателям скриптов; для получения информации о написании скриптов используйте документацию JavaScript.
3.3. JavaScript и терминология ECMA В спецификации ECMA используется терминология и синтаксис, которые могут быть незнакомы JavaScript-программисту. Хотя описание языка в ECMA может отличаться, сам язык остаётся тем же самым. JavaScriptподдерживает всю функциональность спецификации ECMA.
В документации JavaScript описаны аспекты языка, которые нужны программисту на JavaScript. Например:
- Объект global не обсуждается в документации по JavaScript, поскольку Вы не используете его явно. Методы и свойства объекта global обсуждаются в документации по JavaScript, но называются функциями и свойствами верхнего уровня.
- Конструктор без параметров (нулевой аргумент) с объектами Number и String не обсуждается в документации JavaScript, поскольку то, что генерируется, используется мало. Конструктор объекта Number без аргумента возвращает +0, а конструктор объекта String без аргумента возвращает "" (пустую строку).
|
|
Календарь |
« Май 2024 » | Пн | Вт | Ср | Чт | Пт | Сб | Вс | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|