Vakiot taulukoilla tai olioilla JavaScriptissä
Vakiot, jotka sisältävät taulukoita ja olioita, toimivat mielenkiintoisella tavalla. JavaScript ei salli näiden vakioiden arvojen muuttamista, mutta olioiden ominaisuuksien ja taulukoiden alkioiden arvojen muuttaminen on sallittua.
Katsotaanpa esimerkkien avulla. Oletetaan, että meillä on tällainen olio:
const obj = {a: 1, b: 2, c: 3};
Yritetään sijoittaa siihen jotain muuta:
obj = 123; // virhe
Yritetään sijoittaa vakioon toinen olio:
obj = {x: 1, y: 2, z: 3}; // virhe
Kuitenkin, jos yritämme muuttaa olion ominaisuutta, se toimii:
obj.a = '+'; // toimii!
Mitä seuraava koodi tulostaa:
const arr = ['a', 'b', 'c'];
arr[1] = '!';
console.log(arr);
Mitä seuraava koodi tulostaa:
const arr = ['a', 'b', 'c'];
arr = [1, 2, 3];
console.log(arr);
Mitä seuraava koodi tulostaa:
const arr = ['a', 'b', 'c'];
arr = ['a', 'b', 'c'];
console.log(arr);