Konstandid massiivide või objektidega JavaScriptis
Konstandid, mis sisaldavad massiive ja objekte, töötavad huvitaval moel. JavaScript ei luba nende konstantide väärtuste muutmist, kuid objektide omaduste ja massiivi elementide väärtuste muutmine on lubatud.
Vaatame näidete abil. Olgu meil antud järgmine objekt:
const obj = {a: 1, b: 2, c: 3};
Proovime sellesse kirjutada midagi muud:
obj = 123; // viga
Proovime konstandile omistada teise objekti:
obj = {x: 1, y: 2, z: 3}; // viga
Kui me aga proovime muuta objekti omadust, siis see töötab:
obj.a = '+'; // töötab!
Mida kuvatakse järgmise koodi täitmise tulemusena:
const arr = ['a', 'b', 'c'];
arr[1] = '!';
console.log(arr);
Mida kuvatakse järgmise koodi täitmise tulemusena:
const arr = ['a', 'b', 'c'];
arr = [1, 2, 3];
console.log(arr);
Mida kuvatakse järgmise koodi täitmise tulemusena:
const arr = ['a', 'b', 'c'];
arr = ['a', 'b', 'c'];
console.log(arr);