Versão curta:
Quando devo usar:
var:
nunca maisconst:
sempre que possívellet:
quando a variável precisar de ser sobreescrita
Versão longa:
A versão 6 da ECMAScript trouxe consigo novos comandos para declarar variáveis, o let e o const. Isto veio, finalmente corrigir problemas que o var tinha, e na prática não devemos usar mais var. Continua a ser importante declarar variáveis mas agora temos duas opções:
const
O const deve ser usado em casos onde a variável não precise ser reatribuída, sobrescrita. Esta é a maioria dos casos. O const bloqueia a variável a um valor constante e vai dar erro se for reatribuída, ela fica como que em "modo só de leitura, então:
const a = 10;
a = 20; // vai dar erro
mas vale a pena observar que const obj = {} permite modificar o objeto, com por exemplo obj.foo = 'bar' mas não permite re-declarar const obj = {novo: 'objeto'}.
let
O let é a nova maneira de declarar variáveis que precisam ser sobrescritas. O caso mais comum é uma iteração de um loop, onde a variável a iterar é sobrescrita N vezes durante o loop.
Caracteristicas em comum de let e const:
Ambos let e const não permitem que uma variável seja re-declarada. Tal era permitido com var, sem que avisos fossem dados, criando bugs difíceis de detectar.
Ambas declaram a variável no escopo e bloco em que estão, não permitindo dentro da mesma função ou bloco re-declarar a mesma variável.
Estas novas versões ainda não são usadas diretamente nos browsers porque o suporte ainda não é universal, mas usam-se já em ambientes pré-transpilados. O var é portanto desaconselhado em código novo.
obs: acho que a tua duvida era essa em obj uma const pode ser modificada