Ques/Help/Req Что было добавлено в ECMAScript в 2023 году

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
ECMAScript — это стандарт языка программирования JavaScript, который устанавливает правила, синтаксис и другие критерии создания JavaScript-кода.

ECMAScript ежегодно дополняется сообществом разработчиков JavaScript и соответствует стандартам ECMA International. Самые последние обновления ECMAScript включают в себя новые функции и методы, которые помогают разработчикам писать более гибкий и мощный код.

Эти обновления позволяют создавать более качественные и быстрые веб-приложения, а также обеспечивают возможность масштабирования и поддержки кода в будущем.

Обновления помогают большинству веб-приложений стать более мощными и производительными, что расширяет возможности для создания инновационных и уникальных приложений на основе JavaScript.

Вот, какие функции были добавлены в ECMAScript в 2023 году.

1. Поиск элемента в массиве​


Эта функция позволяет найти нужный элемент — от первого до последнего — в массиве с помощью установленного условия.

const array = [{a: 1, b: 1}, {a: 2, b: 2}, {a: 3, b: 3}, {a: 4, b: 4}] console.log(array.findLast(n => n)); //result -> {a: 4,b: 4 } console.log(array.findLast(n => n.a * 5 === 20)); // result -> {a:4,b:4} as the condition is true so it returns the last element. console.log(array.findLast(n => n.a * 5 === 21)); //result -> undefined as the condition is false so return undefined instead of {a:4,b:4}. console.log(array.findLastIndex(n => n.a * 5 === 21)); // result -> -1 as the condition is not justified for returning the last element. console.log(array.findLastIndex(n => n.a * 5 === 20)); // result -> 3 which is the index of the last element as the condition is true.

2. Грамматика Hashbang​


Эта функция позволит нам использовать Hashbang/Shebang в некоторых CLI.

Shebang представлен #! и представляет собой специальную строку в начале скрипта, которая сообщает операционной системе, какой интерпретатор использовать при выполнении скрипта.

#!/usr/bin/env node // in the Script Goal ‘use strict’; console.log(2*3); #!/usr/bin/env node // in the Module Goal export {}; console.log(2*2);

Строка #!/usr/bin/env node вызывает исходный файл Node.js напрямую как исполняемый файл.

Нам не понадобится строка #!/usr/bin/env node для явного вызова файла через интерпретатор узла, например, node ./file.

3. Символы-ключи в WeakMap​


Теперь можно использовать уникальные символы в качестве ключей.

До этого обновления WeakMaps можно было использовать в качестве ключей только объекты. Объекты используются в качестве ключей для WeakMaps, потому что они имеют один и тот же аспект идентичности.

Symbol — это единственный примитивный тип в ECMAScript, который позволяет использовать для него уникальные значения. Использовать Symbol теперь можно и в качестве ключа вместо создания нового объекта с помощью WeakMap.

const weak = new WeakMap(); const key = Symbol(‘my ref’); const someObject = { a:1 }; weak.set(key, someObject); console.log(weak.get(key));

Здесь указаны другие варианты использования, связанные с ShadowRealms и Record & Tuples и с использованием символов в качестве WeakMaps.

4. Изменить массив через копирование​


Обновление предоставляет дополнительные методы в Array.prototype для внесения изменений в массив, возвращая его новую копию с изменением вместо обновления исходного массива.

Новые введенные функции Array.prototype:

  1. Array.prototype.toReversed()
  2. Array.prototype.toSorted(compareFn)
  3. Array.prototype.toSpliced (start, deleteCount, … items)
  4. Array.prototype.with(index, value)

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] /* toReversed */ const reversed = numbers.toReversed(); console.log(«reversed», reversed); // «reversed», [9, 8, 7, 6, 5, 4, 3, 2, 1] console.log(«original», numbers); // «original», [1, 2, 3, 4, 5, 6, 7, 8, 9] /* toSorted */ const sortedArr = numbers.toSorted(); console.log(«sorted», sortedArr); // «sorted», [1, 2, 3, 4, 5, 6, 7, 8, 9] console.log(«original», numbers); // «original», [1, 2, 3, 4, 5, 6, 7, 8, 9] /* with */ const replaceWith = numbers.with(1, 100); console.log(«with», replaceWith); // «with», [1, 100, 3, 4, 5, 6, 7, 8, 9] console.log(«original», numbers); // «original», [1, 2, 3, 4, 5, 6, 7, 8, 9] /* toSpliced */ const splicedArr = numbers.toSpliced(0, 4); console.log(«toSpliced», splicedArr); // «toSpliced», [5, 6, 7, 8, 9] console.log(«original», numbers); // «original», [1, 2, 3, 4, 5, 6, 7, 8, 9]

***

Обновления ECMAScrpit принесли потрясающий набор новых функций, которые серьёзно облегчают кодинг. Если вы уже успели опробовать новые функции, напишите в комментариях, удобнее ли вам стало работать.

Удачного кодинга!
 
198 207Темы
635 179Сообщения
3 618 417Пользователи
Kai AngelНовый пользователь
Верх