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

Por quê estão usando const para declara as arrays?

Fique com uma dúvida, por que os professores estão usando o escopo "const" para declarar a array notas na Aula 1? Eu só tenho costume de atribuir como uma constante, algo que realmente não pode ser alterado, como, por exemplo, o valor de PI, o ano de algum acontecimento.

3 respostas

eu também mim perguntei isso

Alguém pode tirar essa dúvida?

solução!

Oi Fernando,

Quando usamos constantes (const) os valores não podem ser reatribuídos - ou seja, não podemos modificar o valor de uma const usando o operador de atribuição = nem redeclarados. Por exemplo:

const curso = "JavaScript";
curso = "Node.js";

Uncaught TypeError: Assignment to constant variable.
// erro de tipo: atribuição a uma variável constante.

Por outro lado, se o valor da constante for do tipo array ou objeto, seus elementos (no caso de um array) ou propriedades (no caso de um objeto) podem ser atualizados ou removidos. Essa é uma definição da linguagem JavaScript.

Então é perfeitamente possível atualizar um array, mesmo em uma constante:

const numeros = [1, 2, 3];
numeros.push(4); // [ 1, 2, 3, 4 ]

Porém não é possível reatribuir um valor diferente a uma constante (como no primeiro exemplo) e nem "trocar" o tipo de dado, como abaixo:

const numeros = [1, 2, 3];
numeros = 123;
Uncaught TypeError: Assignment to constant variable.

Quanto ao uso da const vs let, normalmente usamos muito mais const mesmo, pois são muito mais frequentes os casos em que não queremos modificar o valor de uma variável e só usamos let quando realmente é preciso atualizar um valor - por exemplo, para criar variáveis contadoras em um laço de repetição.

E como prevenir a modificação de um array? Há diversas formas, como utilizar o método Object.freeze() ou, por exemplo, métodos de array como array.map() que retorna um array novo ao invés de modificar o original. Porém vai depender muito do que se quer fazer no código.

Espero ter ajudado!

Bons estudos ;)