Oi, Wallace, tudo bem?
Quando você declara uma variável com const
, você está dizendo que a referência que essa variável tem para um valor ou objeto não pode ser alterada. Isso significa que, uma vez que você atribui um valor a uma variável const
, você não pode fazer com que essa variável aponte para um novo valor ou objeto. Por exemplo, se você fizer const pi = 3.14;
, você não pode depois fazer pi = 3.14159;
porque isso tentaria mudar a referência que pi
tem para o valor 3.14
.
Agora, quando falamos sobre a imutabilidade do valor mantido pela variável, estamos tratando de outra questão. Se o valor atribuído a uma const
for um objeto, como um array ou um objeto literal, você não pode reatribuir a variável a um novo objeto, mas pode modificar o objeto em si. Por exemplo:
const meuObjeto = { chave: 'valor' };
meuObjeto.chave = 'novoValor'; // Isso é permitido
meuObjeto = { outraChave: 'outroValor' }; // Isso causaria um erro
No caso de seu exercício, a declaração const pi = 29
dentro do bloco de código cria uma nova variável pi
que só existe dentro desse bloco. A variável pi
original, declarada fora do bloco com o valor 3.14
, não é alterada. Variáveis const
(assim como let
) têm escopo de bloco, o que significa que se você as declara novamente dentro de um bloco, como uma estrutura de controle ou uma função, você está criando uma nova variável que só é acessível dentro desse bloco.
Espero ter ajudado. Caso tenha dúvidas, conte com o fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!