O Thaissa. Acredito que sua linha de raciocínio está certa. Segue a maneira que eu entendo:
Uma variável constante, declarada como const
, tem atribuído a ela um valor no momento da declaração. Esse valor pode ser um número, uma string, um objeto, um array, etc. Por ser constante, você não pode atribuir um novo valor a ela. Ou seja:
const nome = "Thaissa";
nome = "outro nome"; // vai dar erro, pois você está ATRIBUINDO à constante "nome" um novo valor
const lista = ["Thaissa", "Bianca"];
lista = ["Matheus", "Samuel"]; // também dará erro pelo mesmo motivo
const pessoa = {nome: "Thaissa", area: "Front End"}
pessoa = {nome: "Matheus", area: "Front End"} // erro novamente
No caso de arrays e objetos, que são estruturas complexas, você pode alterar o conteúdo dentro deles (dentro do colchetes em arrays e dentro das chaves em objetos). Então você não está atribuindo algo à constante em si, mas sim acessando esta constante e dentro dela alterando um valor.
Usando os exemplos anteriores de array e objeto:
const lista = ["Thaissa", "Bianca"];
lista = ["Matheus", "Samuel"]; // ERRO, tentativa de nova atribuição à lista
lista[0] = "Matheus"; // OK, acessou posição 0 dentro de lista e alterou o valor
lista[1] = "Samuel"; // OK, acessou posição 1 dentro de lista e alterou o valor
lista; // ["Matheus", "Samuel"]
const pessoa = {nome: "Thaissa", area: "Front End"}
pessoa = {nome: "Matheus", area: "Front End"} // ERRO, tentativa de nova atribuição à pessoa
pessoa.nome = "Matheus"; // OK, acessou a PROPRIEDADE nome e dentro dela alterou o valor
pessoa; // {nome: "Matheus", area: "Front End"}
Espero que te ajude dessa forma. Bons estudos!