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.