Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Variável x Objetos declarados com CONST

Variáveis declaradas com CONST não podem ter seu valor alterado correto? Objetos declarados com CONST podem ter os valores de seus atributos alterados e até receber novos atributos durante seu ciclo de vida, correto? Isso não é uma contradição?

2 respostas
solução!

Oi, Mauricio! Como vai?

Variáveis declaradas com const realmente não podem ser reatribuídas, ou seja, não podemos trocar o valor delas diretamente. No entanto, para objetos declarados com const, podemos modificar os atributos internos (propriedades) sem reatribuir o objeto inteiro. Isso acontece porque o JavaScript permite modificar o conteúdo interno de objetos e arrays mesmo quando são declarados com const, mas impede que reatribuamos uma nova referência a eles. Por exemplo:

const carro = { marca: 'Toyota', ano: 2022 };

// Alterando o valor do atributo 'ano' 
carro.ano = 2023;

console.log(carro);

No código acima, não mudamos a referência de carro. Apenas alteramos uma de suas propriedades internas. Se tentássemos fazer uma nova atribuição direta a carro, o JavaScript mostraria um erro:

const carro = { marca: 'Toyota', ano: 2022 };

// Tentar reatribuir um novo objeto para 'carro' vai gerar erro
carro = { marca: 'Honda', ano: 2024 };

A explicação para isso é que o JavaScript usa a referência original de um objeto criado com const e permite ajustes nos atributos sem alterar a referência em si. Isso não é uma contradição, mas apenas uma característica da linguagem.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada! Fico à disposição :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Oi Rafaela, obrigado pelos esclarecimentos. É uma característica particular de uma linguagem apaixonante de fato!