](https://www.pexels.com/photo/colorful-cutouts-of-the-word-purpose-4116640/)
У JavaScript метод Array.of
був введений як частина специфікації ES6 (ECMAScript 2015). На перший погляд він може здатися зайвим. Адже навіщо використовувати Array.of(1, 2, 3)
, коли можна просто оголосити та ініціалізувати масив так: [1, 2, 3]
?
Відповідь криється в особливості конструктора Array
.
Особливість конструктора Array
У JavaScript конструктор Array
поводиться по-різному в залежності від кількості переданих йому аргументів. Якщо передати кілька аргументів або один аргумент, який не є числом, то він створює масив з цих аргументів як елементів:
let array = new Array("a", "b", "c");
console.log(array); // Виводить: ['a', 'b', 'c']
Однак, якщо передати лише одне число в конструктор Array
, то він створить масив з довжиною, рівною цьому числу, і цей масив буде заповнений значенням undefined
:
let array = new Array(3);
console.log(array); // Виводить: [undefined, undefined, undefined]
Ця поведінка може призвести до непорозумінь та помилок у вашому коді.
Послідовність Array.of
Метод Array.of
був введений, щоб вирішити цю проблему. Незалежно від кількості чи типу аргументів, Array.of
створює новий екземпляр масиву з переданими аргументами як елементами:
let array = Array.of(3);
console.log(array); // Виводить: [3]
У цьому випадку Array.of(3)
створює масив з одним елементом — 3
, що є більш інтуїтивно зрозумілим і менш схильним до помилок у порівнянні з поведінкою конструктора Array
.
У підсумку, хоча для більшості випадків просте оголошення та ініціалізація масиву за допомогою нотації в дужках ([1, 2, 3]
) є простішим і більш поширеним, Array.of
пропонує послідовну та менш схильну до помилок альтернативу конструктору Array
, коли потрібно створити масив з динамічним списком аргументів.
](https://tahajiru.com/resources/promises)
Оригінально опубліковано на https://tahajiru.com.
Перекладено з: Understanding the Purpose of Array.of in JavaScript