ES6 (ECMAScript 2015) и его последующие версии (ES7, ES8 и т. д.) представили несколько новых функций и улучшений для JavaScript. Эти функции вместе называются ES6+ или ESNext. Некоторые из наиболее важных функций ES6+ включают в себя:

объявления let и const:

  • let: позволяет объявлять переменные блочной области, которые можно переназначать.
  • const: позволяет объявлять переменные блочной области, которые нельзя переназначить, создавая константы.

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

// Regular function function add(a, b) { return a + b; } 
// Arrow function const add = (a, b) => a + b;

Литералы шаблонов
Более эффективный способ объединения строк с использованием обратных кавычек и ${} для встраивания выражений в строки.

const name = 'John';
console.log(`Hello, ${name}!`);

Присваивание деструктурирования:
позволяет извлекать значения из объектов и массивов и назначать их переменным более кратким образом.

const person = { name: 'John', age: 30 };
const { name, age } = person;
const numbers = [1, 2, 3, 4, 5];
const [first, second, ...rest] = numbers;

Оператор расширения:
используется для распространения элементов массива или свойств объекта в другой массив или объект.

const array1 = [1, 2, 3];
const array2 = [4, 5, ...array1]; // [4, 5, 1, 2, 3]
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }

Параметры по умолчанию:
позволяет указать значения по умолчанию для параметров функции.

function greet(name = 'Guest') {
  console.log(`Hello, ${name}!`);
} 
greet(); // Output: "Hello, Guest!" greet('John'); // Output: "Hello, John!"

Классы:
синтаксический сахар для создания функций-конструкторов и наследования на основе прототипов.

class Person {
  constructor(name, age) { 
    this.name = name;
    this.age = age;
  } 
  sayHello() {
    console.log(`Hello, my name is ${this.name}.`); 
  } 
} 

const john = new Person('John', 30);
john.sayHello(); // Output: "Hello, my name is John."

Async/Await:
обеспечивает более синхронный стиль обработки асинхронных операций с использованием промисов.

async function fetchData() { 
  try { 
    const response = await fetch('https://api.example.com/data'); 
    const data = await response.json(); 
    console.log(data); 
  } catch (error) { 
    console.error('Error fetching data:', error.message); 
  } 
}

Промисы
Представленные в ES6 промисы позволяют обрабатывать асинхронные операции и избегать ада обратных вызовов.

function fetchData() { 
  return fetch('https://api.example.com/data') 
  .then((response) => response.json()) 
  .then((data) => console.log(data)) 
  .catch((error) => console.error('Error fetching data:', error)); 
}

Это лишь некоторые из многих функций ES6+, которые улучшили синтаксис и возможности JavaScript. Использование этих современных функций может сделать ваш код более кратким, удобным для чтения и обслуживания, и они поддерживаются всеми современными браузерами и средами.

Первоначально опубликовано на https://codingeagles.com 27 июля 2023 г.