Existem algumas questões aí.

O primeiro ponto é que muita gente ensina errado. Por isso muita gente aprednee errado, e cria um cículo vicioso. Muitas bvezes as pessoas não sabem bgem porque estão fazerndo algo. É o que eu sempre falo, a pessoa só decorou receitas de bolo, ela não aprenbder a programar.

Então muita gente usa const em algo que tem outra sintaxe que já é constante. Não faz sentido declarar um função anônima e guardar em uma constante, porque a função normal já é isto.

Outra questão é que Javascript não tem um readonly ou algo do tipo, então se algo não varia, a única forma de declarar um símbolo é como const. Outras linguagens tem isso mais bem definido, então só usa-se const onde realamente é algo constante e não apenas imutável, que parecem ser a mesma coisa, mas não são. Veja mais: https://pt.stackoverflow.com/q/151721/101.

Também tem o fato de em algumas linguagens tem a cultura de não usar muito a imutabilidade ou constância, fica tudo como variável. A ideia de declarar a capacidade de mutação só começou ser mais reforçada recententemente e as linguagens mais antigas o pessoal não usava muito, assim como começaram abusar em JS. Ao mesmo tempo algumas linguagens sequer tem qualquer coisa parecida com const.

Um outro ponto é que em JS se usa muito, até por cultura, mas nem sempre (novamente, tem caso spara usar e caso para não usar, mas as pessoas só seguem a receita de bolo), a criação se símbolos para acessar algum objeto existente, em geral do documento ou navegador e quase semrpe você quer que esse símbolo detenha o objeto o tempo todo, portanto é imutável, e por falta de opção melhor const é usado.

Isso pode dar algum ganho de desempenho, pode deixar o código mais curto e legível, mas pode acontecer o contrário se a pessoa não entender quando usar, por exemplo não faz sentido fazer isso para usar apenas uma vez, e vemos isso ocorrendo em JS muito. Mais uma vez, porque a pessoa não aprendeu a computação, não entende bem a linguagem, ou sobre linguagens de programação de forma geral, ela apenas decorou algumas coisas mecanicamente.

É óbvio que se você sabe que algo é imutável, então em JS é melhor usar const, não vai matar ninguém se não fizer assim, mas demonstra melhor a intenção. Inclusive que se tiver assim, é porque dificilmente deve mudar essa capacidade ao longo de todo o ciclo de vida do software, ou seja, se algo está sem mutação, mas é circunstancial, poderia ser variável, então é melhor deixar mutável.

Por último, const e let não funcionam em todos os navegadores, então quem usa isso limita seu público. Se o programador pode abrir mão dessas pessoas, ok, mas precisa saber que está fazendo isso.

Espero que agora as pessoas que estão lendo e não sabiam possam tomar melhores decisões (é claro que terá que estudar tudo para isso ocorrer de fato, não adianta tentar inventar mais um receita de bolo).


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

Uso de "const" em JS nao quer dizer que a variavel é imutavel, quer dizer que ela nao vai ter um re-assign, ou seja ela vai continuar tendo a mesma referencia de quando foi criada. Maioria das vezes eu uso const, pois nao vou mudar a referencia, entao fica muito mais facil de ler o codigo. poucas vezes eu uso let.

Discordo quando diz que let e const não funcionam em todos os navegadores, pois o suporte do let e const é de 97% (https://caniuse.com/?search=let) e do const.

Se interpretada ao pé da letra, sua afirmação está correta, porém sabemos que esses 3% são insignificantes e representam aoenas alguns países nais retrogrados e sistemas legados, e não o usuário real da internet.

Um adendo: [aqui](https://www.tabnews.com.br/eliaseas/32015dbb-7974-4811-964c-8de0a8111378) você fala sobre uma fatia pesada do mercado o Zed não suportar Linux. Na data que publico isso, [Linux](https://gs.statcounter.com/os-market-share/desktop/worldwide) corresponde à 4,03% dos computadores de mesa.
Tudo depende do contexto. 4% dos computadores pessoais são Linux. Agora dê um zoom e me diga quantos porcento dos computadores de DESENVOLVEDORES (Público algo de uma IDE) usam linux? Se não me fala a memoria esse percentual é 30% segundo a pesquisa do stackoverflow. Se fizermos esse mesmo zoom no publico alvo do site/aplicativo que use const e let, pode ter certeza que na MAIORIA dos casos, esses 3% que não suportam o teu const/let somem.
Você discorda da matemática então. 3% não é insignificante, embora possa ser para seu caso, conforme eu disse, você tem o direito de abrir mão desses usuários, nem todo mundo tem esse poder, esse direito. O grande problema é que as pessoas acham que isso é normal, que pode dar um tapa na cara dessas pessoas, em alguns casos são pessoas em vulnerabilidade. A maioria das pessoas que ignoram essas pessoas nem percebem que estão ignorando, e pode estar perdendo quem pode fazer uma grande diferença.
Você faz um software para 97% dos computadores ou ele é tão bom que funciona em 99,9% deles? Pense nisso. Sempre que uma tecnologia nova é lançada na web, vão anos (ou décadas) para uma adoção completa. Bundlers/compilers de JS existem (também) para resolver este problema.
Está esquecendo dos pollyfills, que vão atender esses 3%, mesmo que jamais sejam usados.
Por gentileza poderia nos mostrar link desse polyfill?Eu gostaria de dar uma olhada no código fonte para saber como eles resolveram os problemas de sintaxe, semântica, escopo e hoisting que um polyfill dessa natureza provavelmente deva resolver.
Colega augusto, o polyfill é muito simples: ```js source = source.replace(/\b(let)\b/g, 'var'); ``` Espero ter ajudado! *//brincadeira*