Какие нововведения были в ES6

Ответ

ES6 (ECMAScript 2015) принёс множество важных изменений:

  1. Классы – синтаксический сахар над прототипами:
class Person {
  constructor(name) { this.name = name; }
  greet() { return `Hello, ${this.name}`; }
}
  1. Стрелочные функции – компактный синтаксис и лексическое this:
const sum = (a, b) => a + b;
  1. Let/Const – блочная область видимости вместо var.

  2. Шаблонные строки – интерполяция и многострочность:

const msg = `Hello ${name}!`;
  1. Деструктуризация:
const { name, age } = user;
  1. Параметры по умолчанию:
function greet(name = 'Guest') { ... }
  1. Spread/Rest операторы:
const nums = [...arr1, ...arr2];
  1. Модулиimport/export.

  2. Промисы – улучшенная работа с асинхронностью.

  3. Новые методы массивов/объектовfind(), includes(), Object.assign() и др.

ES6 значительно улучшил читаемость и выразительность кода.

Ответ 18+ 🔞

Да ты посмотри, что эти умники в 2015 году выкатили! ES6, блядь, он же ECMAScript 2015. Ну реально, как будто движок у языка сменили, а не просто апдейт выпустили. Ёпта, целая куча плюшек, без которых сейчас жить вообще нихуя невозможно.

Вот смотри, главные фишки, которые всех на уши поставили:

  1. Классы. Ну наконец-то, сука! Раньше мы на прототипах, как обезьяны, прыгали, а тут — красота, почти как у больших пацанов. Хотя внутри всё та же самая мартышлюшка с прототипами, просто причёсанная.
class Person {
  constructor(name) { this.name = name; }
  greet() { return `Hello, ${this.name}`; }
}
  1. Стрелочные функции. Вот это, блядь, революция! Коротко, ясно, и this не ебёт мозг, как раньше. Сидит на месте, как вротберунчик приклеенный.
const sum = (a, b) => a + b;
  1. Let и Const. Всё, пипец твоему var, который как шлюха, везде залазил. Теперь чёткая, блядь, блочная область видимости. Сказал const — и сиди, не дергайся, не переназначишь.

  2. Шаблонные строки. Конкатенацию с этими плюсами на хуй послали. Теперь можно строки как нормальные люди писать, с переменными внутри и даже с переносами, ёба!

const msg = `Hello ${name}!
How are you today?`;
  1. Деструктуризация. Раньше чтобы из объекта поля вытащить, строчил три строчки. А теперь — раз! И всё на блюдечке.
const { name, age } = user; // user? Раздевайся!
  1. Параметры по умолчанию. Наконец-то перестали вот это вот писать: name = name || 'Guest'. Теперь прямо в аргументах можно указать, чё подставлять, если ничего не пришло. Красота, блядь.

  2. Spread/Rest операторы. Три точки, которые решают всё. Развернуть массив? ...arr. Собрать кучу аргументов в один? ...args. Волшебство, ёпта!

const allNums = [...arr1, ...arr2, 42];
  1. Модули. import/export. Это отдельная песня, блядь. Порядок навели, бардак победили. Каждый файл — своя крепость, что хочешь, то и выпускаешь наружу.

  2. Промисы. Ну, асинхронщина, конечно, не сразу всех уделала, но путь-то проложили! Потом уже async/await приехали и вообще красота получилась.

  3. Куча новых методов. Для массивов — find(), includes(). Для объектов — Object.assign(). В общем, инструментов овердохуища добавили, чтобы не городить свои велосипеды.

Короче, ES6 — это был такой пиздецкий прорыв, что после него писать на старом JS стало как-то даже стыдно. Читаемость выросла в разы, код стал выразительнее. Одним словом — молодцы, блядь, порадовали.