Поведение значений при передаче

Здесь я коротко покажу поведение значений и объектов при их передаче. Для того, что бы узнать как это работает, читайте об этом в разделе "javascript под капотом/Как хранятся значения и объекты в памяти heap & stack"

У примитивов

Поведение у примитивных значений:

let a = 5, // положили 5 в а 
    b = a;  // потом в b положили a с её 5

b = b + 5; // потом в b положили b + 5

console.log(b); // в сумме 10 
console.log(a); // так и осталось 5

У объектов

Поведение у объектов:

const obj = {  // создаем объект
    a: 5,
    b: 1
};

const copy = obj; // создаем переменную и кладем туда наш объект
copy.a = 10;  // обращаемся к нашей копии и меняем a на 10

// наша a перезаписалась везде
console.log(copy.a); // 10
console.log(obj.a); // 10