Всем доброго времени суток!
В процессе изучения js возник вопрос по теме хранения и передачи значений в переменных. Насколько я понял, js хранит в переменной указатель на память, в которой сидит само значение. То есть если взять объект, создать другую переменную, присвоить новой переменной значение переменной изначального объекта - это будут просто две ссылки на один и тот же объект. Я проверил изменить какое-нибудь свойство объекта - действительно меняется объект по обоим переменным. Но если я возьму, и просто присвою одной из переменных любое какое-нибудь значение, например, числовое 5, то по второй переменной останется тот же объект. И теперь вопрос: почему так? Мы ведь изменили содержание ячейки переменной, на которую ссылается вторая переменная тоже. Но, судя по всему, работает это как-то по другому...
let a = 10;
let b = a;
let b = 5; //присвоили новое значение, в a осталось прежнее значение, в b - новый.
Но ведь с объектами все будет точно так же:
let a = [5, 6, 7];
let b = a;
let b = [6, 7, 8]; //теперь в a будет [5, 6, 7], в b - [6, 7, 8].