Основные нововведения ES6:
// Примеры ES6:
const name = `Привет, ${user}`; // Шаблонная строка
const add = (a, b) => a + b; // Стрелочная функция
const {id, title} = obj; // ДеструктуризацияES6 (ES2015) — как новый апгрейд автомобиля: всё тоже работает, но гораздо удобнее! 🚗✨
Раньше был только [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}!`;
}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 old = 'старый';
let new = 'новый';
const fixed = 'не меняется';
// ✅ Лучше — использовать let/const
let variable = 'меняется';
const constant = 'не меняется';class Button {
constructor() {
// ❌ Ошибка — this будет undefined
this.element.addEventListener('click', () => {
this.handleClick(); // Не сработает!
});
}
}Знание ES6 помогает писать современный и удобочитаемый JavaScript! 💪
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪