Ответ
ES6+ привнёс много полезного в JS. Чаще всего использую:
- Деструктуризацию для упрощения работы с объектами/массивами:
const { name, age } = user;
const [first, second] = array;
- Опциональную цепочку (
?.) для безопасного доступа к свойствам:
const city = user?.address?.city;
- Нулевое слияние (
??) для дефолтных значений:
const limit = settings.limit ?? 10;
- Async/await для работы с промисами:
async function fetchData() {
const response = await fetch(url);
return response.json();
}
- Шаблонные строки для удобного форматирования:
const greeting = `Hello, ${name}!`;
Также активно использую стрелочные функции, spread/rest операторы, модули ES6 и классы.
Ответ 18+ 🔞
А, ну это ES6+, да? О, блядь, это ж просто праздник какой-то, а не обновление! Слушай, как будто из подвала с допотопным Pentium на нормальный комп пересел.
Вот, например, деструктуризация — это вообще магия, блядь. Раньше же писали как? const name = user.name; const age = user.age; — строчек дохуя, повторений дохуя. А сейчас? Хуяк — и всё на месте.
const { name, age } = user;
const [first, second] = array;
Чисто, элегантно, в рот меня чих-пых! Сразу видно, что за переменные и откуда ноги растут.
Дальше — опциональная цепочка (?.). Это просто спасение от Cannot read property '...' of undefined, ёпта! Раньше лесенку из if строили или в try/catch оборачивали, а теперь одной строчкой:
const city = user?.address?.city;
Если user — null, или address — undefined, то city спокойненько станет undefined, а не выстрелит ошибкой в ебало. Удобство — овердохуища!
Нулевое слияние (??) — тоже вещь! Особенно когда надо отличить ноль, пустую строку или false от настоящего null/undefined. || тут не канает, он же всё ложное заменит. А ?? — только на настоящие null/undefined реагирует.
const limit = settings.limit ?? 10; // Будет 0, если в настройках 0, а не 10!
Async/await — это вообще отдельная песня, блядь. Промисы — это, конечно, лучше колбэков, но цепочки .then().catch() — мозг выносят. А с async/await код выглядит почти как синхронный, прям читать приятно.
async function fetchData() {
const response = await fetch(url);
return response.json();
}
Красота, а не код! И ошибки ловить в привычном try/catch можно.
Ну и шаблонные строки, куда ж без них. Конкатенация через плюс — это жесть и ад, блядь. А с бэктиками (``) — просто песня:
const greeting = `Hello, ${name}! You are ${age} years old.`;
Вставляй что хочешь, переноси строки как хочешь — красота!
А ещё стрелочные функции, которые this не ломают, спред/рест операторы (...), которые жизнь упрощают, модули ES6 для структуры и классы для ООП-подходов. В общем, ES6+ — это как перейти с лаптей на кроссовки, ёпта. Удобно, быстро и стильно.