Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


История JavaScript


JavaScript/ECMAScript

JavaScript был изобретен Бренданом Эйхом в 1995 году.

Он был разработан для Netscape 2 и стал стандартом ECMA-262 в 1997 году.

После того, как Netscape передал JavaScript ECMA, фонд Mozilla продолжил разработку JavaScript для браузера Firefox. Последняя версия Mozilla была 1.8.5. (идентично ES5).

Internet Explorer (IE4) был первым браузером, поддерживающим ECMA-262 Edition 1 (ES1).

Год ЕСМАБраузер
1995 г.   JavaScript был изобретен Бренданом Эйхом
1996 г.   Netscape 2 был выпущен с JavaScript 1.0
1997 г.   JavaScript стал стандартом ECMA (ECMA-262)
1997 г. ES1 ECMAScript 1 был выпущен
1997 г. ES1 IE 4 был первым браузером, поддерживающим ES1.
1998 г. ЭС2 ECMAScript 2 был выпущен
1998 г.   Netscape 42 был выпущен с JavaScript 1.3.
1999 г. ЭС2 IE 5 был первым браузером, поддерживающим ES2.
1999 г. ES3 ECMAScript 3 был выпущен
2000 г. ES3 IE 5.5 был первым браузером, поддерживающим ES3.
2000 г.   Netscape 62 был выпущен с JavaScript 1.5.
2000 г.   Firefox 1 был выпущен с JavaScript 1.5
2008 г. ES4 ECMAScript 4 был заброшен
2009 г. ES5 ECMAScript 5 был выпущен
2011 ES5 IE 9 был первым браузером, поддерживающим ES5 *
2011 ES5 Firefox 4 был выпущен с JavaScript 1.8.5.
2012 ES5 Полная поддержка ES5 в Safari 6
2012 ES5 Полная поддержка ES5 в IE 10
2012 ES5 Полная поддержка ES5 в Chrome 23
2013 ES5 Полная поддержка ES5 в Firefox 21
2013 ES5 Полная поддержка ES5 в Opera 15
2014 ES5 Полная поддержка ES5 во всех браузерах
2015 ES6 ECMAScript 6 был выпущен
2016 ES6 Полная поддержка ES6 в Chrome 51
2016 ES6 Полная поддержка ES6 в Opera 38
2016 ES6 Полная поддержка ES6 в Edge 14
2016 ES6 Полная поддержка ES6 в Safari 10
2015 ES6 Полная поддержка ES6 в Firefox 52.
2018 ES6 Полная поддержка ES6 во всех браузерах**

Примечание

* Internet Explorer 9 не поддерживает ES5 «использовать строго».

** Internet Explorer 11 не поддерживает ES6.


Технический комитет ECMA 39

В 1996 году Netscape и Брендан Эйх представили JavaScript международной организации по стандартизации ECMA, и для разработки языка был создан технический комитет (TC39).

ECMA-262 Edition 1 был выпущен в июне 1997 года.


От ES4 к ES6

Когда комитет TC39 собрался в Осло в 2008 году для согласования ECMAScript 4, они разделились на 2 совершенно разных лагеря:

Лагерь ECMAScript 3.1 :
Microsoft и Yahoo, которые хотели постепенного обновления с ES3.

Лагерь ECMAScript 4 :
Adobe, Mozilla, Opera и Google, которые хотели масштабного обновления ES4.

13 августа 2008 г. Брендан Эйх написал электронное письмо :

Ни для кого не секрет, что орган по стандартизации JavaScript, Технический комитет 39 Ecma, более года был разделен: некоторые члены поддерживают ES4, основное четвертое издание ECMA-262, а другие поддерживают ES3.1, основанный на существующем ECMA-262. Спецификация редакции 3 (ES3). Теперь, я рад сообщить, раскол закончился.

Решение состояло в том, чтобы работать вместе:

  • ECMAScript 4 был переименован в ES5.
  • ES5 должен быть инкрементным обновлением ECMAScript 3.
  • Возможности ECMAScript 4 следует использовать в более поздних версиях.
  • TC39 должен разработать новый основной релиз, более масштабный, чем ES5.

Запланированный новый выпуск (ES6) имел кодовое название «Гармония» (из-за созданного им раскола?).

ES5 имел огромный успех. Он был выпущен в 2009 году, и к июлю 2013 года все основные браузеры (включая Internet Explorer) были полностью совместимы:

Chrome 23 IE10 / Edge Firefox 21 Safari 6 Opera 15
Nov 2012 Sep 2012 May 2013 Jul 2012 Jul 2013

ES6 также имел огромный успех. Он был выпущен в 2015 году, и к марту 2017 года все основные браузеры были полностью совместимы:

Chrome 51 Edge 14 Firefox 52 Safari 10 Opera 38
May 2016 Aug 2016 Mar 2017 Sep 2016 Jun 2016