6 главных особенностей ES6
Этот блог сделан с любовью и javascript
1: ключевое слово const и let
const - это новое ключевое слово для объявления переменных. переменная, объявленная как const, становится неизменной, что означает, что ее нельзя изменить, let также является новым ключевым словом и делает переменные изменяемыми.
2: функция стрелки
стрелочные функции - это новый и лучший способ написания функций в javascript, он делает код более читаемым, давайте посмотрим на пример
let greeting = function(name){ return "hello " + name; } let greeting = name => { return "hello " + name; }
Как видите, второй код более читабелен. Разница между ними в том, что у стрелочной функции нет собственного this.
3: шаблонный литерал
нам не нужно добавлять оператор конкатенации (+) для конкатенации строк, мы можем форматировать строки, используя литерал шаблона, давайте возьмем тот же пример
let greeting = name => { return `hello ${name}`; }
4: Уничтожение массива и объекта
Уничтожение позволяет нам легко присваивать значения массива или объектов новой переменной.
const user = { name : "sachin", id:123, age:18 }; let name = user.name; let id = user.id; let age = user.age;
теперь синтаксис es6 делает то же самое
const user = { name : "sachin", id:123, age:18 }; let {name,age,id} = user;
то же самое можно сделать с массивами
const user = ["sachin" , 123 ,18]; let [name , id ,age] = user; console.log(name); console.log(id); console.log(age);
5: Уроки
Классы - это ядро объектно-ориентированного программирования. Они придают вашему коду правильную структуру и делают его более читабельным.
class Yo { constructor() { this.super('yo') } }
6: Обещания
Promise упрощает написание асинхронного кода. Его можно использовать, если, скажем, вы хотите получить данные из API, или если в вашем коде есть операторы, выполнение которых требует времени.
let promise = new Promise(function(resolve, reject){ //do something });
Promises имеет 3 состояния
1 - в ожидании: обещание в ожидании означает в процессе
2 - выполнено: обещание выполнено
3 - отклонено: обещание отклонено
если обещание разрешено, мы можем получить доступ к его значению в блоке then (), а если оно отклонено, мы получим ошибку в блоке catch ()
//suppose this data is coming from an api let age = apiData('/api/id/age'); let promise = new Promise(function(resolve, reject){ if(age<18) reject(new Error('cannot vote')); else resolve('can vote'); }); promise.then(result=>console.log(result)) .catch(err=> console.log(err))