Що нового в ES2023? 🤔
Andrew
Posted on July 23, 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 Grammer
Ця функція дозволить нам використовувати 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 із використанням Symbols як WeakMaps.
4. Змінити масив шляхом копіювання
Це надає додаткові методи для Array.prototype
внесення змін до масиву шляхом повернення його нової копії зі зміною замість оновлення вихідного масиву.
Нові Array.prototype
введені функції:
- Array.prototype.toReversed()
- Array.prototype.toSorted(compareFn)
- Array.prototype.toSpliced(start, deleteCount, ...items)
- 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]
Це набір функцій, які з’явилися в ES2023.
Posted on July 23, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.