evgeniy8705
@evgeniy8705
Повелитель вселенной

Почему оператор разворота ведет себя со строками не так как с коллекциями?

Почему при развороте строки в массив, он преобразуется в массив с одним элементом в виде этой строки, а при развороте например массива, он разворачивается в такой же массив элементов. Почему в случае со строкой он не разворачивается в массив символов?

console.log([...new String("String")]); // ["String"] (почему не ["S", "t", "r", "i", "n", "g"])
console.log(...new String("String")); // "S" "t" "r" "i" "n" "g"

console.log([...new Array(1, 2, 3, 4, 5)]); // [1, 2, 3, 4, 5]
console.log(...new Array(1, 2, 3, 4, 5)); // 1 2 3 4 5


PS. Пример написал на codepen с включенным babel. Без него все норм, как надо отрабатывает

PSS. Вопрос решен. В обычной консоли браузера выводится все как нужно.
На codepen же есть своя консоль. В который оказывается выводится не совсем тоже самое что и в консоль браузера (При включенном babel)
c61644a3714b4d5f943c5410d2c24f21.png945e71ad16b7461292f41451373cd3a6.png
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ответы на вопрос 2
Negwereth
@Negwereth
lvivcss.com.ua
Потому, что new String() это не примитивная строка, а обьект.
Ответ написан
Stalker_RED
@Stalker_RED
Без бабелей, просто в консоли хрома то-же самое
N5fHoiK.png
и вот почему
wy6fSWT.png
Потому что console.log себя так ведет с параметрами, преданными через запятую
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы