Пару недель назад мне удалось попасть на мою первую встречу по программированию с UtahJS. Дэвид Юнгст провел обсуждение новых тем в ES6, о которых должен знать каждый современный разработчик, стремящийся использовать новейшие технологии. Вот заметки, на которые он ссылался во время своей лекции (и на которые я буду ссылаться в этой статье).

Ключевое слово «Пусть»

Как и ключевое слово var, let определяет переменные. Однако let не поднимается, как объявления переменных, что может избавить разработчиков от множества непредвиденных головных болей. Вы также не можете переопределить переменную, с которой использовался let, путем переназначения let. Что я имею в виду под этим:

let x = true;
let x = false;

приведет к TypeError. Правильный способ изменить значение x будет

 x = false; 

без использования let.
Let также чрезвычайно полезен для циклов. Используя это ключевое слово, let ограничивается циклом for в

for (let i = 0; i < something.length; i++)

Ключевое слово «константа»

Const — еще одно ключевое слово, используемое для объявления переменных. Он ТОЛЬКО ДЛЯ ЧТЕНИЯ, что идеально подходит для присвоения значений переменным, которые не должны и не будут изменяться. При объявлении const принято использовать все прописные буквы и знаки подчеркивания. Бывший:

MAX_COLORS = 3;

Const нельзя переназначить.

const MAX_COLORS = 3;
MAX_COLORS = 784;

приводит к TypeError. Использование этого ключевого слова помогает предотвратить синдром магического числа.

Параметры по умолчанию

Первое улучшение функций связано с параметрами по умолчанию.
Взятый из примера Jungst код ниже сломается:

function countColors(colors) {
  return colors.length;
}
countColors();
>> TypeError: Cannot read property 'length' of undefined

но теперь мы можем установить параметры по умолчанию.

function countColors(colors = []) {
  console.log(colors.length);
}
countColors();
countColors(['Red', 'Blue', 'Green']);
>> 0
>> 3

В первом вызове функции мы получаем длину 0, потому что это значение по умолчанию для пустого массива без длины. Второй вызов возвращает три, потому что мы переопределили параметр по умолчанию, передав массив из трех цветов.
Как рекомендуется, все, что имеет параметры по умолчанию, должно быть указано последним в параметрах функции.

Имена пар ключ-значение в объектах

Действительно полезное обновление в ES6 избавляет нас от повторяющегося набора текста. Во многих случаях объекты JavaScript имеют одно и то же имя как для ключа, так и для соответствующего значения. Традиционно нам пришлось бы набирать

var a = "foo", 
    b = 42,
    c = {};
var o = { 
  a: a,
  b: b,
  c: c
};

В ES6 мы можем просто объявить переменную o как

var o = {a, b, c};

Интерполяция строк

Если вы никогда не определяли переменную как «одна переменная плюс какая-то строка плюс еще одна переменная», то я не уверен, что вы программировали на JavaScript :P. Типичным примером этого может быть:

var fullInfo = title + ": " + description.;

Теперь мы можем использовать обратные кавычки, знаки доллара и фигурные скобки для достижения этого эффекта.

let fullInfo = `${title}: ${description}`;

ЕЩЕ БОЛЬШЕ

Итак, я только что коснулся поверхности некоторых новых функций ES6. Есть и другие замечательные обновления, такие как введение ключевого слова class, остальных параметров и многое другое. Иди все проверь!