Антон Швец, а темплайты? или построители строк? или переменные цикла?
Да в общем куча их случаев.
Как по мне константами стоит объявлять то что приходит извне к вам, и то что точно меняться не будет.
Все остальное лучше просто ограничивать в области видимости.
Владимир Коротенко, строки вообще сами по себе константы.
В циклах перебора const нужен, цикл for с let нужен редко, но там конечно не обойтись.
А что за "темплайты"?
Просто очень часто когда пишут let это место для выделения кода в отдельную функцию.
В моем текущем проекте 312 let и 4359 const.
Владимир Коротенко, глянул, через массив быстрее в три раза и на один let меньше соответственно.
Но у вас некорректно тест написан. На самом деле разница там небольшая, они почти одинаковы, array лишь чуть быстрее. Микрооптимизации в js вообще малоинформативны. https://jsfiddle.net/melchiorio/68v1aj7c/
И js явно не хватает простого функционального итератора. Хотя в реальной жизни он редкий, в бенчмарках встречается на три порядка чаще :)
Владимир Коротенко, если язык ближе к железу то будут варианты, конечно постоянное копирование ридонли структур будет обходится дороже. Но в js свои нюансы, компилятору проще оптимизировать если его не заставляют быть гибким, а let предполагает что ссылка может принимать любой тип данных.
В вашем тесте кстати есть всего лишь одна строка, 'DEADBEEF', проходя итерации js склеивает из нее каждый раз все новую и новую структуру а потом все это остается в памяти и сжирается gc, а с массивом делает это один раз, но есть затраты на создание самого массива из одинаковых ссылок.
В разных языках может применяться разный подход работы со строками.