**Первый фрагмент**
const user = {
name: "John"
};
// сработает без проблем.
user.name = "Pete";
**Второй фрагмент**
const user = {
name: "John"
};
// Ошибка (нельзя переопределять константу user)
user = {
name: "Pete"
};
Хотя user.name = "Pete"; и user = { name: "Pete" }; оба меняют значение свойства. Почему так? Я правильно думаю, что первый фрагмент работает правильно, так как в нем неявно меняется значение свойства, то есть по ссылке меняется. А во втором фрагменте явно меняется, то есть прямо в самом объекте пытается менять значение свойства и поэтому выдает ошибку. Так или нет? Если нет, то почему оно так работает?
Разжую комментарий @Akina:
Вынуть из коробки носки и положить туда ботинки - запросто. А вот переделать её в ящик с ботинками затруднительно
const
работает не так, как может показаться. Если вы думаете, что создав переменную через const
вы полностью сделаете ее неизменяемой, то это не так.
Если говорить просто, то любая переменная хранится в какой-то ячейке памяти. Так вот, const
говорит, что положив что-то в ячейку памяти, мы уже не сможем поменять это значение.
Поэтому во втором случае у вас появляется ошибка, так как вы пытаетесь положить в ячейку новое значение.
В первом же случае, ошибки нет, так как значение в ячейке не меняется, меняется св-во этого значение, которое лежит в другом месте ( и св-ва объекта это уже не const
)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В данном коде, по клику на кнопку мы вытягиваем массив объектов из сервераЗатем добавляем эти объекты в разметку
Мне необходимо подключить bootstrap 4 таким образом, чтобы он был виден во всех подключаемых javascript файлахСобственно, есть файл app
Проходя курс по JS столкнулся с проблемой во время использования Promise вместо обычных callback функций
Возникла необходимость добавить выпадающий список с двумя значениями - условно контактом и его ID, одной строкойВыбранное значение обрабатывается...