Array.of() создаёт новый массив из переданных аргументов.
Главный плюс этого метода в том, что он всегда воспринимает аргументы как элементы массива. Именно поэтому Array.of() часто понятнее и безопаснее, чем Array().
Синтаксис
Array.of(element0, element1, ...)
Это статический метод Array, поэтому его вызывают так:
Array.of(1, 2, 3)
А не так:
// Ошибка
[1, 2, 3].of()
Что делает Array.of()
Метод берёт все переданные значения и собирает из них массив.
console.log(Array.of(1, 2, 3)); // [1, 2, 3]
console.log(Array.of("a", "b")); // ["a", "b"]
console.log(Array.of(true, null)); // [true, null]
Если вызвать Array.of() без аргументов, получится пустой массив:
console.log(Array.of()); // []
Array.of(3) и Array(3)
Это самая важная разница.
console.log(Array.of(3)); // [3]
console.log(Array(3)); // [ <3 empty items> ]
Array.of(3) создаёт массив с одним элементом 3.
Array(3) создаёт массив длины 3 с пустыми слотами внутри.
Именно из-за этого Array.of() полезен, когда нужно явно создать массив из значений и не попасть в особое поведение Array().
Один аргумент
С Array.of() один аргумент всегда становится элементом массива, независимо от типа.
console.log(Array.of(3)); // [3]
console.log(Array.of("hello")); // ["hello"]
console.log(Array.of(true)); // [true]
Это поведение предсказуемо и читается проще, чем Array(...).
Несколько аргументов
Если аргументов несколько, метод просто собирает их в массив.
const result = Array.of(10, 20, 30);
console.log(result); // [10, 20, 30]
console.log(result.length); // 3
Когда это полезно
Array.of() удобно использовать, когда:
- нужно создать массив из одного числа
- хочется избежать путаницы с
Array(length) - важна предсказуемость и читаемость кода
Пример:
const pageNumbers = Array.of(1);
console.log(pageNumbers); // [1]
Если бы здесь использовался Array(1), результат был бы совсем другим.
Array.of() и []
Во многих случаях массив по-прежнему проще создать через литерал:
const numbers = [1, 2, 3];
Но Array.of() особенно полезен там, где значения передаются как аргументы функции и нужно явно собрать их в массив.
Частые ошибки
Путать Array.of() и Array()
console.log(Array.of(5)); // [5]
console.log(Array(5)); // массив длины 5
Это не одно и то же.
Считать, что это метод массива
const arr = [1, 2, 3];
// arr.of(4); // Ошибка
Array.of() вызывается у конструктора Array, а не у готового массива.
Быстрая памятка
Array.of()создаёт массив из переданных значений- один аргумент всегда становится элементом массива
Array.of(3)возвращает[3]Array(3)создаёт массив длины3Array.of()- это статический методArray
Коротко
Array.of() - это удобный способ создать массив из аргументов без сюрпризов. Главное, что стоит запомнить: Array.of(3) возвращает [3], а Array(3) ведёт себя совсем иначе.