Стандарт ES6
Вы только начали знакомство с JavaScript, но будет не лишним рассказать Вам о стандарте ES6 (ECMAScript 6), вышедшим в 2015 году. Он определяет не только особенности синтаксиса JavaScript, но и меняет некоторые принципы работы с функциями и методами. Конечно, сейчас многие примеры из ES6 покажутся Вам непонятными, но в дальнейшем, когда Вы освоите работу с функциями, ООП, асинхронностью, модулями и некоторыми другими понятиями из JavaScript, Вам будет полезно вернуться к этой статье и перечитать её.
Давайте вкратце пробежимся по основным правилам ES6:
- Для объявления переменных используем let вместо var. Ключевое слово var появилось еще в первых стандартах JavaScript, однако сейчас не рекомендуется его использовать. Это связано стем, что переменная с var обладает очень большой зоной видимости и доступна в любом блоке кода, что может вызвать серьезные проблемы, особенно когда мы хотим использовать переменную только в каком-то одном блоке, напр., в условии. А вот переменная, объявленная с помощью let будет работать только в отведенной ей части кода.
- С помощью const можно объявлять неизменяемые переменные - константы .
- Улучшенная поддержка Юникода.
-
Стрелочные функции можно записывать в краткой форме:.
let sum = (a, b) => a + b;
-
Форматированные строки позволяют
использовать переменную внутри строки:
let name = 'user'; console.log(`Привет, ${name}!`);
-
Деструктуризация обеспечивает удобное извлечение
нескольких значений из переменой. Напр., у нас есть объект
user , хранящий имя и возраст пользователя. Давайте извлечем из него эти значения:let user = { name:'user1', age: 'age1' }; let { name, age } = user; console.log(name); // выведет user1 console.log(age); // выведет age1
-
Использование оператора spread (...)
для того, чтобы извлечь все данные из массива. Давайте
с помощью этого оператора вставим числа, хранящиеся
в первом массиве во второй массив:
let arr1 = [1, 2, 3]; let arr2 = [...arr1, 'a', 'b']; console.log(arr2); // выведет [ 1, 2, 3, 'a', 'b' ]
-
Директивы import/export для импорта и экспорта файлов и/или их частей:
import { func } from './module.js'; export const arr = [1, 2, 3];
-
Объектно-ориентированный синтаксис для классов ООП:
class Person { constructor(name) { this.name = name; } }
-
Работа с асинхронным кодом идёт через промисы:
fetch(url).then(response => response.json());
-
Для упрощения работы промисов используются
async/await:
async function fetchData() { let data = await fetch(url); }