Выбор ответа Middle Объекты и массивы обновлено

Array.of против new Array

Вопрос

Что выведет код?

console.log(new Array(3).length, Array.of(3).length, new Array('3').length);

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 3 1 1. Конструктор Array с одним числовым аргументом создаёт массив такой длины из пустых слотов: 3.

Варианты ответа

  1. 3 3 3
  2. 1 1 1
  3. 3 1 1правильный ответ
  4. 3 1 3

Разбор

Конструктор Array с одним числовым аргументом создаёт массив такой длины из пустых слотов: 3. Но с одним нечисловым аргументом он создаёт массив из этого элемента: new Array('3') это ['3'], длина 1. Array.of всегда создаёт массив из переданных аргументов, без особого случая: [3]. Именно из-за этой двусмысленности Array.of и появился.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.