Em JavaScript há uma comportamento chamado hoisting.
O uso de var trazia algumas pegadinhas, como por exemplo, declarar a mesma variável 2x usando var
var abc = 25
// ...
// ...
var abc = 99Nenhum erro era disparado com isso, e vários efeitos colaterais eram gerados.
Com a versão ES2015 do JavaScript, duas novas keyworks foram adicionadas: let e const. Elas vieram para corrigir ou problemas de var e adicionar outros comportamentos, var passou a ser tratado como depreciado, sendo altamente desencorajado o seu uso.
Basicamente let substitui os comportamentos esperados quando se usava var, adicionando alguns comportamentos, como a validação, caso a mesma variável fosse declarada mais de 1x.
Já const inicialmente pode enganar os mais desavisados.
Uma variável declarada com const não pode ter seu valor reatribuido, porém não garante imutabilidade.
Objetos por exemplo, podem ter seus valores modificados, o que não pode ser feito é a reatribuição da variável.
Em JavaScript tudo são objetos (exceto undefined), com exceção de números e strings (que são imutáveis) todos os objetos são passados como referência.
Ao usar const você garante que a váriavel ligada ao objeto não possa ser reassinada por outro valor
const abc = { x: 1 }
abc.x = 2
abc = { y: 3 } // erroAtualmente a recomendação é sempre usar const e evitar let. Isso deixa o código mais previsivel e menos suscetível a bugs.