НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

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 Модулі JS JSON JS Дебагінг JS Гід по стилю JS Кращі практики JS Поширені помилки JS Продуктивність JS Зарезервовані слова

JS Версії

JS Версії JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021/2022 JS IE/Edge JS Історія

JS Об’єкти

Визначення об’єктів Властивості об’єкта Методи об’єкта Відображення об’єкта Доступ до об’єктів Конструктори об’єктів Прототипи об’єктів Ітеровані об’єкти Сети (Набори) об’єктів Мапи (Карти) об’єктів Довідник об’єктів

JS Функції

Визначення функції Параметри функції Виклик функції Функція call() Функція apply() Функція bind() Закриття функції

JS Класи

Класи. Інтро Успадкування класу Статичні методи

JS Асинхроний

Зворотні виклики Асинхроний Проміси Async/Await

JS HTML DOM

DOM Вступ DOM Методи DOM Документ DOM Елементи DOM HTML DOM Форми DOM CSS DOM Анімація DOM Події DOM Слухач подій DOM Навігація DOM Вузли DOM HTMLCollection DOM NodeList

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 Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS Приклади

JS Приклади JS HTML DOM JS HTML Input JS HTML Об’єкти JS HTML Події JS Браузер JS Редактор JS Вправи JS Вікторина JS Навчальний табір JS Сертифікат

JS Довідники

JavaScript Об’єкти HTML DOM Об’єкти

JavaScript. Уроки W3Schools для початківців українською мовою

En

ECMAScript 2017

Угода про іменування JavaScript почалась з ES1, ES2, ES3, ES5 та ES6.

Але ECMAScript 2016 та ECMAScript 2017 не називалися ES7 та ES8.

З 2016 року нові версії іменуються по рокам (ECMAScript 2016/2017/2018).

Нові можливості ECMAScript 2017

В цьому розділі представлені нові функції в ECMAScript 2017:


JavaScript Заповнення рядків

В ECMAScript 2017 додані два методи рядків: padStart та padEnd для підтримки заповнення на початку та в кінці рядка.

Приклад

let str = "5";
str = str.padStart(4,0);
// результат дорівнює 0005
Спробуйте самі »

Приклад

let str = "5";
str = str.padEnd(4,0);
// результат дорівнює 5000
Спробуйте самі »

Заповнення рядків не підтримується в Internet Explorer.

Firefox та Safari були першими браузерами з підтримкою заповнення рядків в JavaScript:

Chrome 57 Edge 15 Firefox 48 Safari 10 Opera 44
Mar 2017 Apr 2017 Aug 2016 Sep 2016 Mar 2017

JavaScript Записи об’єктів

ECMAScript 2017 додав до об’єктів новий метод Object.entries.

Метод Object.entries() повертає масив пар ключ / значення в об’єкті:

Приклад

const person = {
  firstName : "John",
  lastName : "Doe",
  age: 50,
  eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.entries(person);
Спробуйте самі »

Object.entries() спрощує використання об’єктів в циклах:

Приклад

const fruits = {Bananas:300, Oranges:200, Apples:500};

let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Спробуйте самі »

Object.entries() також спрощує конвертацію об’єктів в мапи:

Приклад

const fruits = {Bananas:300, Oranges:200, Apples:500};

const myMap = new Map(Object.entries(fruits));
Спробуйте самі »

Chrome та Firefox були першими браузерами з підтримкою Object.entries:

Chrome 47 Edge 14 Firefox 47 Safari 10.1 Opera 41
Jun 2016 Aug 2016 Jun 2016 Mar 2017 Oct 2016

JavaScript Значення об’єкту

Object.values схожий на Object.entries, але повертає одномірний масив значень об’єкту:

Приклад

const person = {
  firstName : "John",
  lastName : "Doe",
  age: 50,
  eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.values(person);
Спробуйте самі »

Firefox та Chrome були першими браузерами з підтримкою Object.values:

Chrome 54 Edge 14 Firefox 47 Safari 10.1 Opera 41
Oct 2016 Aug 2016 Jun 2016 Mar 2017 Oct 2016

JavaScript Асинхронні функції

Очікування тайм-аута

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    setTimeout(function() { myResolve("I love You !!"); }, 3000);
  });
  document.getElementById("demo").innerHTML = await myPromise;
}

myDisplay();

Спробуйте самі »

Firefox та Chrome були першими браузерами з підтримкою асинхронних функцій JavaScript:

Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
Des 2016 Apr 2017 Mar 2017 Sep 2017 Des 2016