Оператор 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']