Почему я могу изменить значение константы в JavaScript
Я знаю, что ES6 еще не стандартизирован, номногие браузеры в настоящее время поддерживают const
Ключевое слово в JS.
В спецификации написано, что:
Значение константы не может быть изменено посредством переназначения, и константа не может быть повторно объявлена. Из-за этого, хотя можно объявить константу без ее инициализации, это было бы бесполезно.
и когда я делаю что-то вроде этого:
const xxx = 6;
xxx = 999;
xxx++;
const yyy = [];
yyy = 'string';
yyy = [15, 'a'];
Я вижу, что все в порядкеxxx
все еще6
а такжеyyy
является[]
.
Но если я сделаюyyy.push(6); yyy.push(1);
мой константный массив был изменен. Сейчас это[6, 1]
и, кстати, я до сих пор не могу изменить его сyyy = 1;
.
Я это ошибка, или я что-то упустил? Я попробовал это в последнем Chrome и FF29