Come è già stato osservato, in JavaScript l'immutabilità di una costante riguarda unicamente la sua ridefinizione nello scope corrente.
In altre parole, un tentativo come:
'use strict';
const A = 1;
A = 2;
restituirà il TypeError Assignment to constant variable perché stiamo tentando di sovrascrivere l'intero valore di una costante.
Se invece abbiamo una costante come:
'use strict';
const B = { a: 1 };
B.a = 2;
otterremo:
> B
{ a: 2 }
Quindi le costanti in JavaScript sono mutabili ma non sovrascrivibili, a differenza di quanto accade in altri linguaggi con la parola chiave final
che, ricordiamolo, attualmente in JavaScript non viene implementata ma è riservata per uso futuro.