Получается массив значений в указанном диапазоне: [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
Я нашёл, что это называется спред, но что происходит у него в круглых скобках, и зачем ему конечное значение в конце? Большое спасибо, если кто-то поможет!
[...rangeOfNumbers(startNum, endNum), endNum];
этот код ставит последним элементом массива endNum, а перед ним разворачивает рекурсивные вызовы самой себя. Три точки просто разворачивают массив, который возврашает функция.