Переменная связывает имя со значением. При присваивании примитива копируется значение, а при присваивании объекта копируется значение ссылки на тот же объект.
Как создаются переменные и присваиваются данные в JavaScript? Что происходит при создании примитива и объекта?
Переменная связывает имя со значением. При присваивании примитива копируется значение, а при присваивании объекта копируется значение ссылки на тот же объект.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Переменная связывает имя со значением. При присваивании примитива копируется значение, а при присваивании объекта копируется значение ссылки на тот же объект.
Поэтому изменение поля через одну переменную видно через другую, но переназначение одной переменной не меняет вторую. Примитивы неизменяемы, хотя переменную let можно связать с новым значением; const запрещает переназначение, а не мутацию объекта. Формула «примитив всегда в стеке, объект всегда в куче» не является обязательной моделью стандарта.