Sanchous2508
@Sanchous2508
while (noSuccess) { tryAgain() ; if(dead) break ;

Почему я могу изменять массив при использовании const?

При создании массива использую const, хотя могу его изменить методами push, pop, unshift, shift. Можете объяснить спасибо огромное .
Допустим
const arr = [0, 0, 0];
arr.unshift(100);
  • Вопрос задан
  • 940 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
const делает неизменяемой только ссылку хранящуюся в переменной, на сами объекты оно не влияет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Массив = объект. Подробно про объекты-константы и копирование по ссылке объясняют тут.

Свойства его не защищены от изменений. Но можно его заморозить:
const arr = [0, 0, 0];
Object.freeze(arr); // ма-агия!
arr.unshift(100);   // выбросит ошибку: нельзя менять свойство длины, оно non-writeable
arr[1] = 'z';       // ошибки не будет, но
console.log(arr)    // [0,0,0]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы