С выходом ECMAScript 2015 язык JavaScript получил множество новых возможностей, которые значительно расширили его применение в разработке, в том числе на стороне сервера. Эти изменения упростили написание кода, сделали его более читаемым и приблизили язык к современным стандартам промышленной разработки.
Новые возможности объявления переменных
В ES5 существовало только ключевое слово var, которое имело проблемы с областью видимости. В ES6 добавлены новые способы:
let — переменные с блочной областью видимости.
const — переменные-константы, значение которых нельзя переопределить.
// Пример использования let и const
let count = 10;
const PI = 3.14;
if (true) {
let inner = "hello";
console.log(inner); // hello
}
// console.log(inner); // Ошибка, переменная недоступна
Стрелочные функции
ES6 ввёл стрелочные функции, которые являются сокращённой формой записи функций и наследуют this из внешнего контекста.
// Обычная функция
function sum(a, b) {
return a + b;
}
// Стрелочная функция
const sumArrow = (a, b) => a + b;
console.log(sum(2, 3)); // 5
console.log(sumArrow(2, 3)); // 5
Шаблонные строки
В ES6 появились шаблонные строки, которые упрощают работу со строками и позволяют использовать выражения внутри строки.
const name = "Alex";
const age = 25;
console.log(`Имя: ${name}, Возраст: ${age}`);
// Имя: Alex, Возраст: 25
Деструктуризация
ES6 позволяет извлекать значения из массивов и объектов с помощью деструктуризации.
В ES6 появились классы — синтаксический сахар над прототипным наследованием.
class User {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Привет, я ${this.name}`);
}
}
const user = new User("Alex");
user.sayHello(); // Привет, я Alex
Модули
ES6 ввёл модули с ключевыми словами import и export.
// user.js
export class User {
constructor(name) {
this.name = name;
}
}
// app.js
import {User} from "./user.js";
const user = new User("Ivan");
Заключение
ES6 принесло множество улучшений, которые сделали JavaScript мощным инструментом для создания серверных приложений. Новые возможности позволяют писать более надёжный, структурированный и читаемый код.