JavaScript (не путать с Java) - это высокоуровневый, динамичный, многопарадигменный, слабо типизированный язык, используемый как для клиентской, так и для серверной скриптов. Его основное использование заключается в рендеринге и разрешении манипулирования веб-страницами. Используйте этот тег для вопросов, касающихся ECMAScript и его различных диалектов/реализаций (исключая ActionScript и Google-Apps- Script).

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

JavaScript работает почти в каждой операционной системе, а движок включен в основные веб-браузеры. Разработан в 1995 году Брендан Эйх в Netscape Communications, он изначально назывался LiveScript но был переименован в JavaScript из-за дружеских отношений Netscape с Sun Microsystems в то время.

Также доступны автономные механизмы JavaScript или интерпретаторы, в том числе:

  • > "Теги, связанные с тегом" spidermonkey ", rel=" tag" > spidermonkey, первый движок JavaScript когда-либо написанный, в настоящее время используемый в Mozilla Firefox.
  • Механизм JavaScript Google, Chrome , используется в Google Chrome и Chromium.
  • , облачный/серверный интерпретатор, который обеспечивает программный" макроподобный" контроль сервисов и документов Google Apps.
  • , построенный на вершине V8, платформа, которая позволяет приложениям на стороне сервера быть написаны на JavaScript.
  • Windows включает в себя , вариант JavaScript в Windows Script Host.
  • , вилка JScript, разработан Microsoft и используется в браузере Edge.
  • Mozilla также предлагает , реализация JavaScript, встроенный в Java, как правило, встроенный в Java-приложения для предоставления сценариев конечным пользователям.
  • (кроме проекта Chromium ) реализует javascriptcore.
  • (первоначально полученный из HyperTalk) теперь является диалогом ECMAScript и использует множество API-интерфейсов ECMAScript.
  • Duktape Embeddable, портативный движок ECMAScript в C с небольшим объемом памяти.
  • Wakanda, инфраструктура, IDE и сервер, построенный на V8, поддерживающий серверный JavaScript
  • MeteorJS; приложение Meteor представляет собой сочетание клиентского JavaScript, который работает внутри веб-браузера или мобильного приложения PhoneGap, серверного JavaScript, который выполняется на сервере Meteor внутри контейнера Node.js. (согласно Документы MeteorJS)

Сеть разработчиков Mozilla содержит высококачественные документация по JavaScript.

JavaScript обычно используется для управления Document Object Model (DOM) и Каскадные таблицы стилей (CSS) в браузере. Это позволяет создавать сценарии пользовательского интерфейса, анимацию, автоматизацию, проверку на стороне клиента и многое другое.

С недавним появлением таких платформ, как Node.js, JavaScript теперь можно использовать для записи на стороне сервера Приложения. Кроме того, он также используется в средах, которые не являются веб-версиями, например, PDF-документами, браузерами для сайтов, виджетами рабочего стола и т.д.

Номенклатура

Хотя он был разработан под именем Mocha, язык был официально назван LiveScript, когда он впервые был отправлен в бета-версиях Netscape Navigator 2.0 в сентябре 1995 года, но он был переименован в JavaScript, когда он был развернут в браузер Netscape версии 2.0B3.

Смена имени с LiveScript на JavaScript примерно совпала с тем, что Netscape добавила поддержку технологии Java в свой веб-браузер Netscape Navigator. Окончательный выбор имени вызвал путаницу, создав впечатление, что язык является побочным продуктом языка программирования Java, и выбор был охарактеризован как маркетинговая уловка Netscape, чтобы дать JavaScript в виде красок того, что было тогда горячим, новым язык веб-программирования.

Люди часто используют термин JavaScript неофициально. Язык и термин взяты из Netscape. ECMAScript, JavaScript и JScript - это термины, которые легко путать.

ECMAScript был разработан как стандартизация Netscape JavaScript и самостоятельно разработанный Microsoft JScript. Каноническая ссылка - Спецификация языка ECMAScript® 2015. Хотя JavaScript и JScript стремятся быть совместимыми с ECMAScript, они также предоставляют дополнительные функции (и другие отклонения), не описанные в спецификациях ECMA. Другие версии ECMAScript также существуют.

Различия сегодня для тех, кто использует JavaScript, незначительны; люди обычно не различают JavaScript и JScript-варианты от ECMAScript.

версии ECMAScript

Большинство современных браузеров реализуют JavaScript на основе спецификации ECMAScript 6, хотя некоторые из них не могут реализовать некоторые функции ES6. Однако старые браузеры, такие как Internet Explorer 8, реализуют спецификацию ECMAScript 3, которая не содержит таких функций, как Function.prototype.bind и даже JSON.parse, среди прочих.

Текущая версия ECMAScript - это версия 8, известная как ECMAScript 2017, которая была завершена в июне 2017 года.


При запросе JavaScript-запроса вы должны:

  • Отлаживайте свой код JavaScript (см. Creativebloq, MDN, Google, & MSDN).
  • Изолируйте проблемный код и воспроизведите его в фрагмент кода или внешнюю онлайн-среду, такую ​​как JSFiddle или JS Bin (не забудьте также указать код в самом вопросе).
  • Если используется библиотека или фреймворк, пометьте вопрос соответствующими тегами: для jQuery, для Prototype, для MooTools и т.д. Однако, если структура не используется или не нужна, не включайте эти теги.
  • Если проблема связана с клиентской стороной, укажите, в каком браузере возникли проблемы, и какие сообщения об ошибках, если они есть, были брошены браузером. Используйте средства разработчика для своего браузера (см. "Полезные инструменты" ниже), чтобы просмотреть эти сообщения. Если вопрос специфичен для браузера, используйте теги , , , , , , и т.д.
  • Отметьте вопрос только как или , если вы задаете вопрос о проблеме, которая касается комбинация одного из них с JavaScript и может быть получена только с информацией, касающейся любого из этих предметов.

Изучение JavaScript

Безопасность

JavaScript и DOM предоставляют злоумышленникам возможность запускать скрипты на клиентском компьютере через Интернет. Авторы браузера содержат этот риск, используя два ограничения. Во-первых, скрипты запускаются в песочнице, в которой они могут выполнять только действия, связанные с веб-сайтом, а не задачи общего назначения, такие как создание файлов. Во-вторых, сценарии ограничены одной и той же политикой происхождения: сценарии с одного веб-сайта не имеют доступа к такой информации, как имена пользователей, пароли или файлы cookie, отправленные на другой сайт. Большинство ошибок безопасности, связанных с JavaScript, являются нарушениями одной и той же политики происхождения или изолированной программы.

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

является частым типом попытки украсть данные или повредить веб-сайт через Javascript.

Полезные инструменты

Обучение интерактивному JavaScript

  • Codecademy | JavaScript: Изучите основы JavaScript и динамического программирования.
  • Udacity | Языки программирования: Ключевые понятия включают указание и обработку допустимых строк, предложений и структур программ.
  • Школа кодов: Изучите основы JavaScript и динамического программирования.
  • Ханская академия: лучше всего узнавать о анимации.
  • Codewars: Узнайте шаблоны и обучайте по опросм, опубликованным от членов сообщества.

Мудрость из стека

Полезные ссылки

Бесплатные книги по программированию JavaScript

Видео


Пример кода JavaScript

Этот сценарий отображает "Hello World" на вашем экране.

  window.onload = function() {  alert ( "Hello World!" );
}
Код>

Демо-версия


Часто задаваемые вопросы

Найдите ответы на некоторые из наиболее часто задаваемых вопросов о JavaScript и связанных с ними технологиях ниже.

Q: У меня есть эта структура JSON, как я могу получить доступ к свойству x.y.z?
A: Доступ/процесс (вложенные) объекты, массивы или JSON

Q: Я добавляю события в цикл for, но все обработчики делают то же самое, почему?
A: Закрытие JavaScript внутри циклов - простой практический пример

Q: Я хочу сравнить что-то с несколькими значениями, есть ли простой способ сделать это?
A: Краткий способ сравнения с несколькими значениями

Q: Как настроить правильное наследование?
A: Объекты не наследуют прототипированные функции

Q: Как работают блокировки JavaScript?
A: Как работают блокировки JavaScript? p >

Q: Почему код setTimeout() внутри цикла для всегда использует последнее значение?

A: setTimeout в for-loop не печатает последовательные значения

Q: Как вернуть ответ от вызова AJAX из функции?
A: Как вернуть ответ от асинхронного вызова?

Q: Почему мои обработчики не подключены в работе цикла правильно и что я могу сделать с этим?
A: Javascript: генерировать динамический обработчик p >

В:Как получить значения строки запроса? A: Как получить значения строки запроса в JavaScript?

Q: Что делает использовать строгий в JavaScript?
A: Что такое "use strict" делать в JavaScript и каковы причины этого?

Q: Как сделать страницу перенаправления в jQuery/JavaScript?
A: Как сделать перенаправить на другую веб-страницу?

Q: Как отсортировать массив объектов по значению свойства?
A: Сортировать массив объектов по значению свойства строки в JavaScript

Q: Я добавляю элементы с JavaScript или jQuery в более поздние моменты и добавляю события, но они не стреляют, почему?
A: Возможно, вы захотите делегирование событий.

Q: Как сохранить элементы массива, соответствующие определенному условию? A: Как я могу хранить только элементы массива, соответствующие определенному условию?

Q: Как отлаживать код JavaScript? A: Как отлаживать код JavaScript?

Q: Что означает этот символ в JavaScript?
A: Что означает этот символ в JavaScript?

Дополнительная информация:

Чат