Что используешь из последних нововведений JS

Ответ

ES6+ привнёс много полезного в JS. Чаще всего использую:

  1. Деструктуризацию для упрощения работы с объектами/массивами:
const { name, age } = user;
const [first, second] = array;
  1. Опциональную цепочку (?.) для безопасного доступа к свойствам:
const city = user?.address?.city;
  1. Нулевое слияние (??) для дефолтных значений:
const limit = settings.limit ?? 10;
  1. Async/await для работы с промисами:
async function fetchData() {
  const response = await fetch(url);
  return response.json();
}
  1. Шаблонные строки для удобного форматирования:
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;

Если usernull, или addressundefined, то 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+ — это как перейти с лаптей на кроссовки, ёпта. Удобно, быстро и стильно.