Зачем передавать 0 в reduce?

Что делает 0 в данной функции?

function sum() {
    return Array.from(arguments).reduce((a, b) => Number(a) + Number(b), 0);
}

Ответы (1 шт):

Автор решения: Qwertiy

Начальное значение, чтобы не упало на пустом массиве.

А вот Number(a) вполне можно заменить на a.

Да и вообще, лучше функцию вот так переписать:

function sum(...args) {
  return args.reduce((a, b) => +b + a, 0);
}
→ Ссылка