Учебник по 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-объекты


ECMAScript 2016

Соглашение об именах JavaScript началось с ES1, ES2, ES3, ES5 и ES6.

Но ECMAScript 2016 и 2017 не назывались ES7 и ES8.

С 2016 года новые версии именуются по годам (ECMAScript 2016/2017/2018).

Новые функции в ECMAScript 2016

В этой главе представлены новые функции ECMAScript 2016:

  • Возведение в степень JavaScript (**)
  • Назначение возведения в степень JavaScript (**=)
  • JavaScript Array.prototype.includes

Оператор возведения в степень

Оператор возведения в степень ( **) возводит первый операнд в степень второго операнда.

Пример

let x = 5;
let z = x ** 2;          // result is 25

x ** yдает тот же результат, что и Math.pow(x, y):

Пример

let x = 5;
let z = Math.pow(x,2);   // result is 25

Возведение в степень

Оператор присваивания возведения в степень ( **=) возводит значение переменной в степень правого операнда.

Пример

let x = 5;
x **= 2; // result 25

Chrome 52 и Edge 14 были первыми браузерами, которые полностью поддерживали оператор возведения в степень:

Chrome 52 Edge 14 Firefox 52 Safari 10.1 Opera 39
Jul 2016 Aug 2016 Mar 2017 Mar 2017 Aug 2016


Массив JavaScript.includes()

В ECMAScript 2016 представлены Array.prototype.includesмассивы. Это позволяет нам проверить, присутствует ли элемент в массиве:

Пример

const fruits = ["Banana", "Orange", "Apple", "Mango"];

fruits.includes("Mango"); // is true

Все современные браузеры поддерживают Array.prototype.includes:

Chrome 47 Edge 14 Firefox 43 Safari 9 Opera 34
Dec 2015 Aug 2016 Dec 2015 Oct 2015 Dec 2015