С какими нововведениями ES6 знаком?

👨‍💻 Frontend Developer 🟡 Часто попадается 🎚️ Средний
#JavaScript

Краткий ответ

Основные нововведения ES6:

  1. let/const — лучше, чем var 🆕
  2. Стрелочные функции — короче и удобнее ➡️
  3. Шаблонные строки — удобная вставка переменных 💬
  4. Деструктуризация — вытаскиваем значения из объектов 🎯
  5. Классы — новый синтаксис для объектов 🏗️
  6. Модули — импорт и экспорт кода 📦
// Примеры ES6:
const name = `Привет, ${user}`; // Шаблонная строка
const add = (a, b) => a + b;    // Стрелочная функция
const {id, title} = obj;        // Деструктуризация

Полный ответ

ES6 (ES2015) — как новый апгрейд автомобиля: всё тоже работает, но гораздо удобнее! 🚗✨

let и const — замена var

Раньше был только [var], теперь есть лучшие варианты:

// ❌ Проблемы с var
var name = 'Иван';
var name = 'Петр'; // Можно переопределять! 😱
 
// ✅ Лучше с let/const
let age = 25;      // Можно менять
age = 26;          // ✅
 
const name = 'Иван'; // Нельзя менять
// name = 'Петр';    // ❌ Ошибка!

Стрелочные функции — короче и удобнее

Стрелочные функции — как быстрые команды, которые сразу выполняются:

// Обычная функция
function add(a, b) {
  return a + b;
}
 
// Стрелочная — короче!
const add = (a, b) => a + b;
 
// Ещё короче для одного параметра
const square = x => x * x;

Шаблонные строки — удобная вставка

Шаблонные строки — как магнитная доска, куда можно прикреплять любые значения:

const name = 'Иван';
const age = 25;
 
// ❌ Старый способ
const greeting = 'Привет, ' + name + '. Тебе ' + age + ' лет.';
 
// ✅ Новый способ
const greeting = `Привет, ${name}. Тебе ${age} лет.`;

Деструктуризация — вытаскиваем нужное

Деструктуризация — как сортировка вещей: сразу берём нужные:

const user = {name: 'Иван', age: 25, city: 'Москва'};
 
// ❌ Старый способ
const name = user.name;
const age = user.age;
 
// ✅ Новый способ
const {name, age} = user;
 
// Работает и с массивами
const colors = ['красный', 'зелёный', 'синий'];
const [first, second] = colors; // first = 'красный', second = 'зелёный'

Классы — новый синтаксис объектов

Классы — как чертежи для создания одинаковых объектов:

// ❌ Старый способ
function Person(name) {
  this.name = name;
}
Person.prototype.sayHello = function() {
  return `Привет, ${this.name}`;
};
 
// ✅ Новый способ
class Person {
  constructor(name) {
    this.name = name;
  }
  
  sayHello() {
    return `Привет, ${this.name}`;
  }
}

Модули — импорт и экспорт

Модули — как библиотека: берём только нужные книги:

// Экспортируем
export const PI = 3.14;
export const add = (a, b) => a + b;
 
// Импортируем
import {PI, add} from './math.js';

Другие полезные фичи

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

// Если не передать greeting, будет "Привет"
function greet(name, greeting = "Привет") {
  return `${greeting}, ${name}!`;
}

Spread оператор

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
 
// Объединяем массивы
const combined = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]
 
// Копируем объект
const original = {a: 1, b: 2};
const copy = {...original}; // {a: 1, b: 2}

Промисы

// Вместо колбэков — промисы
fetch('/api/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.log('Ошибка!'));

Частые ошибки

Смешивать var с let/const

// ❌ Плохо — смешивать разные типы
var old = 'старый';
let new = 'новый';
const fixed = 'не меняется';
 
// ✅ Лучше — использовать let/const
let variable = 'меняется';
const constant = 'не меняется';

Забывать про this в стрелочных функциях

class Button {
  constructor() {
    // ❌ Ошибка — this будет undefined
    this.element.addEventListener('click', () => {
      this.handleClick(); // Не сработает!
    });
  }
}

Простые правила

  1. let/const вместо var — современный подход 🆕
  2. Стрелочные функции — короче и удобнее ➡️
  3. Шаблонные строки — удобная вставка переменных 💬
  4. Деструктуризация — быстро получаем значения 🎯
  5. Классы — понятный синтаксис для объектов 🏗️
  6. Модули — организованный код 📦

Знание ES6 помогает писать современный и удобочитаемый JavaScript! 💪


Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪