Оператор spread для строк и чисел в JavaScript

Оператор spread, примененный к строке, разбивает эту строку посимвольно:

...'abcde'; // разобьет строку в символы через запятую: 'a','b','c','d','e'

Результат такого разбиения можно передать в параметры функции:

function func(s1, s2, s3, s4, s5) { return s1 + '-' + s2 + '-' + s3 + '-' + s4 + '-' + s5; } console.log( func(...'abcde') ); // выведет 'a-b-c-d-e'

А можно преобразовать этот результат в массив:

let arr = [...'abcde']; // получим массив ['a', 'b', 'c', 'd', 'e']

Не запуская код определите, что выведется в консоль:

let arr = [...'12345']; console.log(arr);

Не запуская код определите, что выведется в консоль:

let arr = ['a', ...'12345']; console.log(arr);

Не запуская код определите, что выведется в консоль:

let arr = [...'12345', ...'56789']; console.log(arr);

Не запуская код определите, что выведется в консоль:

let arr1 = ['a', 'b', 'c']; let arr2 = [...arr1, ...'12345']; console.log(arr2);

Оператор spread и числа

Оператор spread не применим к числам:

let arr = [...12345]; // будет ошибка

Для решения проблемы следует преобразовывать число в строку, вот так:

let arr = [...String(12345)]; // получится массив ['1', '2', '3', '4', '5']