Почему нельзя задавать переменные const в const?
Вопрос, почему при const -> const функция не работает, а при const -> var работает?Потому что const на то и const, что его нельзя изменить (подсказка: sum += i;). Вам нужно в данном случае использовать let.
А const -> const тут совершенно ни при чём.
const не позволяет изменять своё значение. Именно поэтому константы должны быть не только объявлены, но и тут же проинициализированы.
Вы вообще пытались почитать тот же MDN перед вопросом?