ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Интро JS Установка JS Вывод JS Инструкции JS Синтаксис JS Комментарии JS Переменные JS Ключевое слово Let JS Ключевое слово Const JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Строковые методы JS Строковый поиск JS Строковые шаблоны JS Числа JS Числовые методы JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Массив Const JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break и Continue JS Итерации JS Наборы JS Карты JS Typeof JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Хостинг JS Use Strict JS Ключевое слово this 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/Edge JS История

JS Объекты

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

JS Функции

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

JS Классы

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

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

Обратные вызовы Асинхронный Промисы Async/Await

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM Формы DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Браузер BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS Веб API

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

JS AJAX

AJAX Интро AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON Сервер JSON PHP JSON HTML JSON JSONP

JS и jQuery

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

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочники

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

JavaScript. W3Schools на русском. Уроки для начинающих

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).

Год ECMAБраузер
1995   JavaScript был изобретен Бренданом Эйхом
1996   Netscape 2 был выпущен с JavaScript 1.0
1997   JavaScript стал стандартом ECMA (ECMA-262)
1997 ES1 Выпущен ECMAScript 1
1997 ES1 IE 4 был первым браузером, поддерживающим ES1
1998 ES2 Выпущен ECMAScript 2
1998   Netscape 42 был выпущен с JavaScript 1.3.
1999 ES2 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 "use strict".


Технический комитет 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 г. Брендан Эйх написал email:

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

Решение заключалось в совместной работе:

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

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

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
Май 2016 Август 2016 Март 2017 Сентябрь 2016 Июнь 2016