1
resposta

Alterar dados dentro de um objeto

Olá a todos, um certo conceito não ficou muito claro pra mim, por exemplo temos que a o tipo de variável const se da a um dado que seria constante dentro do seu código, sendo assim para lista de dados que são usados como exemplo no curso não seria mais interessante utilizar uma let para assumir esses dados, sendo que em uma lista de objetos ele pode assumir varios elementos diferentes?

1 resposta

Versão curta:

Quando devo usar:

  • var: nunca mais
  • const: sempre que possível
  • let: 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