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

limites de constante no objeto

ok vi ate que tinha um forum ja criado a esse respeito mas, fica ainda a duvida. eu entendi que eu posso alterar valores do objeto ( que e uma constante) mas o que muda ?

na outra explicacao em informacoes falaram que nao da pra redeclarar a variavel (objeto) que e constante. mas os valores internos dela podem ser alterados. ou seja ele deixa de ser uma constante e permite modificacao de seus valores. o atributo constante sera ignorado ?

porque pelo que eu entendi uma constante vem com o atributo read only. quando declaramos um objeto isso nao acontece. ou seja nao importa se eu declarar o objeto como constante ou let ou var ?

3 respostas
solução!

eu vi alguns exemplos online que ajudam a esclarecer essa parte:

CONST OBJECT

const obj = {a: 'foo', b: 'bar'};

const obj2 = {z: 'baz'};

obj = obj2; // const nao vai deixar essa condicao acontecer ao tentar usar obj recebe obj2 ele nao parmite, pois isso tira {a:'foo', b:'bar'} e substitui pra {z: 'baz'}

ou seja no caso de um cadastro na qual voce usa um objeto pra manter nomes telefone etc e password voce declara como const apenas para proteger esse objeto em caso alguem tente algo contra seu codigo e modifique esse objeto. seria isso ?

// LET

let condiments = ['Ketchup', 'Soy Sauce', 'Sriracha'];

// Mutacao possivel condiments[0] = 'Mayo'; console.log(condiments);//=> [ 'Mayo', 'Soy Sauce', 'Sriracha' ]

// redesenhando possible condiments = ['Mayo']; console.log(condiments); //=> [ 'Mayo' ] ele vai aceitar modificar o codigo do objeto

// Re-declarar nao e possivel //let condiments = [] //=> SyntaxError: Identifier 'condiments' has already been declared

// CONST array

const utensils = ['Fork', 'Chopsticks', 'Spork'];

// Mutation Possible utensils[2] = 'Spoon' console.log(utensils); //=> [ 'Fork', 'Chopsticks', 'Spoon' ] utensils.length = 0 console.log(utensils); //=> [ ]

// Re-assigning not possible //utensils = ['Spoon']; //=> TypeError: Assignment to constant variable.

// Re-declaring not possible //const utensils = {} //=> SyntaxError: Identifier 'condiments' has already been declared

É isso, quando vc declara com const, o que permanece constante é a referência. Você pode mudar o conteúdo, dá forma que foi mudado no exemplo. Oq vc não poderá fazer é reatribuir um valor para essa const. Realmente chamar de constante pode passar um ideia meio errônea.

mas no

const a = {
b: 1
c: 2
d: 3
} 

ou seja no objeto quando declarado como constante voce consegue!