JavaScript: различия между версиями
Cat1987 (обсуждение | вклад) |
Cat1987 (обсуждение | вклад) |
||
Строка 54: | Строка 54: | ||
Поскольку JavaScript является интерпретатором, без строгой типизации, и может выполняться в различных средах, каждое со своими собственными особенностями совместимости, программист должен быть очень внимательным, и должен проверять, что его код выполняется как ожидается в широком перечне возможных конфигураций. Очень часто бывают случаи, когда скрипт, прекрасно работает в одной среде, выдает некорректные результаты в другом. | Поскольку JavaScript является интерпретатором, без строгой типизации, и может выполняться в различных средах, каждое со своими собственными особенностями совместимости, программист должен быть очень внимательным, и должен проверять, что его код выполняется как ожидается в широком перечне возможных конфигураций. Очень часто бывают случаи, когда скрипт, прекрасно работает в одной среде, выдает некорректные результаты в другом. | ||
Каждый блок сценария интерпретатор разбирает отдельно. На веб-страницах, когда надо комбинировать блоки JavaScript и HTML, синтаксические ошибки найти легче, если держать функции сценария в отдельном блоке кода, или (еще лучше) использовать много малых связанных .js файлов. Таким образом синтаксическая ошибка повлечет | Каждый блок сценария интерпретатор разбирает отдельно. На веб-страницах, когда надо комбинировать блоки JavaScript и HTML, синтаксические ошибки найти легче, если держать функции сценария в отдельном блоке кода, или (еще лучше) использовать много малых связанных .js файлов. Таким образом, синтаксическая ошибка повлечет «падение» целой страницы. | ||
== Источники == | == Источники == |
Версия от 09:53, 2 января 2016
JavaScript — динамический объектно-ориентированный язык программирования, созданный в 1995 году.
История
Появление в Netscape
В 1995 году компания Netscape поставила задачу встроить язык программирования Scheme или «какую похожую» в браузер Netscape. Для этого был приглашен Брендан Айк, американский разработчик, специализирующийся на системном программировании. Также, для ускорения разработки, Netscape начали сотрудничество с компанией Sun Microsystems.
Со временем, концепция разрабатываемой языка программирования была расширена до возможности использования непосредственно в HTML-код страницы.[1][2] Компании имели целью создать язык, который мог связать различные части веб-сайтов: изображений, Java-апплетов, объектной модели документа. Эта речь должна была стать удобной для веб-дизайнеров и неквалифицированных программистов. Рабочим названием нового языка была Mocha, которая была изменена на LiveScript в первых двух бета-версиях браузера Netscape 2.0. А несколько позже, пользуясь популярностью бренда Java, LiveScript был переименован в JavaScript и третья бета-версия (2.0B3) Netscape 2.0 вышла с современным названием. Для этого была приобретена соответствующая лицензия в компании Sun Microsystems, которая владела брендом Java.
В 1992 году компанией Nombas был разработан скриптовый язык программирования Cmm (С-minus-minus, игра слов вокруг языка С++), которая позже была переименована в ScriptEase и мог встраиваться в веб-страницы. Существует ошибочное мнение, что JavaScript был создан под влиянием Cmm. На самом деле, Брендан Айк никогда не слышал о Cmm до того, как он создал LiveScript. Позже, Nombas остановил разработку Cmm и начал использовать JavaScript, а затем участвовал в группе по стандартизации JavaScript.
Стандартизация
В ноябре 1996 года Netscape заявила, что отправила JavaScript в организацию Ecma International для рассмотрения языка как промышленного стандарта. В результате дальнейшей работы появилась стандартизованный язык с названием ECMAScript. В июне 1997 года, Ecma International опубликовала первую редакцию спецификации ECMA-262 . Год назад, в июне 1998 года, чтобы адаптировать спецификацию стандарту ISO / IEC-16262, были внесены некоторые изменения и выпущена вторая редакция. Третья редакция увидела свет в декабре 1999 года.[3]
Четвертая версия стандарта ECMAScript так и не была закончена и четвертая редакция не вышла.[4] Тем не менее, пятая редакция появилась в декабре 2009 года.
На сегодня, актуальная версия стандарта — 5.1. Она была выпущена в июне 2011 года.[5]
Актуальное состояние
JavaScript является одним из самых популярных языков программирования в Интернете. Но сначала много профессиональных программистов скептически относились к языку, целевая аудитория которой состояла из программистов-любителей.[6] Появление AJAX изменило ситуацию и вернула внимание профессионального сообщества к языку. В результате, были разработаны и улучшены многие практик использования JavaScript (в частности, тестирование и отладка), созданные библиотеки и фреймворки, распространилось использование JavaScript вне браузера.
О языке
JavaScript обладает рядом свойств объектно-ориентированного языка, но благодаря концепции прототипов поддержка объектов в ней отличается от традиционных языков ООП. Кроме того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг (currying), анонимные функции, замыкания (closures), что придает языку дополнительную гибкость.
JavaScript содержит несколько встроенных объектов: Global, Object, Error, Function, Array, String, Boolean, Number, Math, Date, RegExp. Кроме того, JavaScript содержит набор встроенных операций, которые, строго говоря, не обязательно являются функциями или методами, а также набор встроенных операторов, управляющих логикой выполнения программ. Синтаксис JavaScript в основном соответствует синтаксису языка Java (то есть, в конце концов, унаследованный от C), но упрощенный по сравнению с ним, чтобы сделать язык сценариев легким для изучения. Так, например, декларация переменной не содержит ее типа, свойства также не типов, а декларация функции может стоять в тексте программы после нее
Семантика языка сходна с семантикой языка Self.
Одна из популярных технологий, позволившая сделать страницы более динамичными и обеспечить новые возможности — это динамическая загрузка и вставка данных в документ, получившая название AJAX.
Использование в HTML
При использовании в рамках технологии DHTML JavaScript код включается в HTML-код страницы и выполняется интерпретатором, встроенным в браузер. Код JavaScript вставляется в теги <script></script> с обязательным по спецификации HTML 4.01 атрибутом type="text/javascript", хотя в большинстве браузеров язык сценариев по умолчанию именно JavaScript.
Скрипт, который выводит модальное окно с классическjq надписью «Hello, World!» внутри браузера:
- alert('Hello, World!');
Следуя концепции интеграции JavaScript в существующие системы, браузеры поддерживают включение скрипта, например, в значение атрибута события:
- <a href="delete.php" onclick="return confirm('Вы уверены?');">Удалить</a>
Здесь при нажатии на ссылку функция confirm ('Вы уверены?'); вызывает модальное окно с надписью «Вы уверены?», а return false; блокирует переход по ссылке. Разумеется, этот код будет работать только если в браузере есть и включена поддержка JavaScript, иначе переход по ссылке состоится без предупреждения.
Есть и третья возможность подключения JavaScript — написать скрипт в отдельном файле, а спустя подключить его при помощи конструкции:
- <script type="text/javascript" src="http://путь_до_файла_со_скриптом"></script>
Отладка
При разработке больших и нетривиальных веб-приложений с использованием JavaScript, критически важен доступ к инструментам отладки. Поскольку браузеры от разных производителей несколько отличаются в поведении JavaScript и реализации объектной модели документа, надо иметь в руках отладчик для каждого браузера, если веб-приложения ориентированы на него.
В настоящее время Internet Explorer, Firefox, Opera, Google Chrome и Safari имеют свой отладчик.
Также существуют несколько инструментов, как свободных, например, JSLint,[7] инструмент проверки качества кода, сканирует JavaScript программу, ищет проблемы кода, так и коммерческих продуктов, наподобие инструмента под названием JavaScript Debugger.
Поскольку JavaScript является интерпретатором, без строгой типизации, и может выполняться в различных средах, каждое со своими собственными особенностями совместимости, программист должен быть очень внимательным, и должен проверять, что его код выполняется как ожидается в широком перечне возможных конфигураций. Очень часто бывают случаи, когда скрипт, прекрасно работает в одной среде, выдает некорректные результаты в другом.
Каждый блок сценария интерпретатор разбирает отдельно. На веб-страницах, когда надо комбинировать блоки JavaScript и HTML, синтаксические ошибки найти легче, если держать функции сценария в отдельном блоке кода, или (еще лучше) использовать много малых связанных .js файлов. Таким образом, синтаксическая ошибка повлечет «падение» целой страницы.
Источники
- ↑ Press Release announcing JavaScript, «Netscape and Sun announce Javascript», PR Newswire, December 4, 1995
- ↑ «TechVision: Innovators of the Net: Brendan Eich and JavaScript»
- ↑ «ECMAScript 3rd Edition specification»
- ↑ Documentation
- ↑ ECMA 262
- ↑ «JavaScript: The World’s Most Misunderstood Programming Language»
- ↑ JSLint
Ссылки
- JavaScript — статья в энциклопедии «Викиреальность»