Sé que ES6 aún no está estandarizado, pero muchos navegadores actualmente admiten const palabras clave en JS.
En las especificaciones, está escrito que:
El valor de una constante no puede cambiar mediante la reasignación y una constante no se puede volver a declarar. Por ello, aunque es posible declarar una constante sin inicializarla, sería inútil hacerlo.
y cuando hago algo como esto:
const xxx = 6;
xxx = 999;
xxx++;
const yyy = [];
yyy = 'string';
yyy = [15, 'a'];
Veo que todo está bien, xxxestá quieto 6y yyyestá [].
Pero si lo hago yyy.push(6); yyy.push(1);, mi matriz constante se ha cambiado. Ahora mismo lo es [6, 1]y por cierto todavía no puedo cambiarlo yyy = 1;.
¿Es un error o me falta algo? Lo probé en el último Chrome y FF29.