Ключевые нововведения ES6+
1. Стрелочные функции (Arrow Functions)
Стрелочные функции — это более короткий и удобный способ объявления функций. Они позволяют избежать проблем с областью видимости переменной
this.
// До ES6
var square = function(num) {
return num * num;
};
// После ES6
const square = num => num * num;2. Шаблонные строки (Template Literals)
Шаблонные строки позволяют удобно вставлять переменные и выражения в строки, используя обратные кавычки (
`) и синтаксис ${expression}.
const name = "Alice";
const greeting = `Hello, ${name}!`;3. Разрушающее присваивание (Destructuring)
Разрушающее присваивание позволяет легко извлекать значения из массивов и объектов.
const person = {firstName: "John", lastName: "Doe"};
const {firstName, lastName} = person;4. Rest и Spread операторы
Операторы Rest (
...) и Spread (...) позволяют легко работать с коллекциями и параметрами функций.
// Rest
function sum(...args) {
return args.reduce((acc, curr) => acc + curr, 0);
}
// Spread
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];5. Модули (Modules)
ES6 представил механизм модулей, позволяющий разделять код на отдельные файлы и импортировать их в другие части приложения.
// module.js
export function sayHello(name) {
return `Hello, ${name}!`;
}
// main.js
import {sayHello} from "./module.js";
alert(sayHello("World"));6. Промисы (Promises) и асинхронность
Промисы и асинхронные функции (async/await) значительно упростили работу с асинхронным кодом.
// Promises
fetch("/api/user")
.then(response => response.json())
.then(data => console.log(data));
// Async/Await
async function getUser() {
const response = await fetch("/api/user");
const data = await response.json();
console.log(data);
}7. Новый синтаксис классов (Classes)
ES6 добавил синтаксис классов, что позволило упростить объявление классов и наследование.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes noise`);
}
}
class Dog extends Animal {
speak() {
super.speak();
console.log(`${this.name} says woof!`);
}
}8. Set и Map
Коллекция Set позволяет хранить уникальные значения, а Map — хранить пары ключ-значение.
const uniqueNumbers = new Set([1, 2, 3, 4, 5, 1, 2]);
const map = new Map([[1, "One"], [2, "Two"]]);ES6 и последующие версии JavaScript внесли огромный вклад в развитие языка, сделав его более мощным, выразительным и удобным для разработчиков. Современные возможности JavaScript позволяют создавать сложные и высокопроизводительные веб-приложения, которые соответствуют современным стандартам и ожиданиям пользователей.