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

ES2023: Найдите массив из последнего

.findLast()

  • Метод findLast() выполняет итерацию по массиву в обратном порядке и извлекает значение последнего элемента, отвечающего критериям, определенным предоставленной функцией тестирования.
  • Если ни один элемент не удовлетворяет условию, метод возвращает неопределенное значение.

.findLa stIndex()

  • Метод findLastIndex() выполняет обратную итерацию по массиву и извлекает индекс последнего элемента, который соответствует критериям, заданным предоставленной функцией тестирования.
  • Если ни один элемент не удовлетворяет условию, метод возвращает -1.

ES2023: изменить массив путем копирования

Предложение «Изменить массив путем копирования» выдвинуто Эшли Клеймор и Робином Рикаром. Это предложение представляет набор новых методов, которые позволяют изменять массивы без изменения исходного массива. Вместо изменения исходного массива эти методы возвращают новую копию массива с желаемыми изменениями. Этот подход соответствует принципам функционального программирования и повышает предсказуемость кода.

.toReversed()

Метод toReversed() берет элементы исходного массива и переставляет их в обратном порядке. Затем он возвращает новый массив, содержащий эти элементы.

Важно отметить, что метод toReversed() не меняет исходный массив. Вместо этого он создает новый массив с обратным порядком элементов.

Использование toReversed() может оказаться полезным, если вы хотите работать с элементами массива в обратном порядке или вам нужно манипулировать массивом, не изменяя исходную последовательность.

.toSorted(compareFn)

Метод toSorted() — это копирующая версия метода sort(), доступная для массивов. Он возвращает новый массив, элементы которого отсортированы по возрастанию.

Параметр compareFn не является обязательным. Он определяет функцию, определяющую порядок сортировки. Если этот параметр опущен, элементы преобразуются в строки и сортируются на основе значения кодовой точки Юникода.

.toSpliced(start,deleteCount,…items)

Затем метод toSpliced() возвращает новый массив с желаемыми изменениями, в то время как исходный массив остается неизменным.

Важно отметить, что метод toSpliced() гарантирует, что результирующий массив никогда не будет разреженным. Если в исходном массиве были пустые слоты, в новом массиве эти слоты будут заполнены значениями undefined.

.with(индекс,значение)

Метод Array.prototype.with() позволяет нам создать копию массива и изменить значение по определенному индексу, не изменяя исходный массив. Он следует неразрушающему подходу, гарантируя, что исходный массив останется неизменным. Эта функция оказывается особенно полезной, когда мы хотим выполнять цепные операции с массивом, внося определенные изменения.

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

RangeError выдается, если индекс больше или равен длине массива или меньше отрицательной длины массива.

ES2023: символ как ключи WeakMap

В JavaScript есть структура данных WeakMap, которая позволяет нам связывать значения с ключами. Однако у WeakMaps есть ограничение: они допускают использование объектов только в качестве ключей. Это связано с тем, что объекты в JavaScript имеют уникальный аспект идентификации.

Символы — это особый тип в JavaScript, который позволяет нам создавать уникальные значения. В отличие от других примитивных типов, таких как строки или числа, каждое значение символа совершенно уникально и отличается от любого другого значения символа.

Предложение предлагает использовать символы в качестве ключей в WeakMaps, а не только объекты. Это позволит нам использовать символы для связывания значений с ключами в WeakMap.

Использование символов в качестве ключей в WeakMaps позволяет нам воспользоваться их уникальностью и использовать их для более эффективного и выразительного связывания значений с определенными ключами. Это может быть особенно полезно в различных случаях использования, таких как работа с ShadowRealms, Record & Tuples или в любом другом сценарии, где необходимы уникальные ассоциации «ключ-значение».

ES2023: Хэшбанг Граммер

Существуют инструменты и среды интерфейса командной строки (CLI), которые поддерживают использование Shebang или Hashbang в сценариях JavaScript. Shebang или Hashbang — это специальная строка в начале сценария, определяющая интерпретатор или инструмент командной строки, который будет использоваться при выполнении сценария.

В некоторых из этих сред CLI строка Hashbang удаляется из сценария перед ее передачей движку JavaScript для выполнения. Это удаление сделано для того, чтобы скрипт оставался действительным кодом JavaScript.

Предложение предполагает изменение способа удаления Hashbang. Вместо того, чтобы среды CLI удаляли строку Hashbang, предложение предполагает, что сами движки JavaScript должны нести ответственность за ее удаление. Это создаст единый подход для различных сред JavaScript, гарантируя, что поведение удаления Hashbang будет унифицированным и стандартизированным.

Перекладывая ответственность за удаление Hashbang на механизмы JavaScript, предложение призвано упростить процесс, сделать его более предсказуемым и гарантировать единообразие поведения независимо от используемой среды CLI.

ЯВАСКРИПТ