1. Примитивы в JS копируются, а об-ты и массивы передаются по ссылке
Листинг 1. Особенности передачи параметров между переменными в JS
"use strict";
/*
ПРИМИТИВЫ
*/let a = 10// ЗНАЧЕНИЕ ПЕРЕМЕННОЙ a СКОПИРОВАЛОСЬ blet b = a // b = 10// ПОЭТОМУ, ЕСЛИ МЫ ИЗМЕНИМ ПЕРЕМЕННУЮ b ЭТО НИКАК НЕ ПОВЛИЯЕТ НА a
b = 20// b = 20, a ПО ПРЕЖНЕМУ = 10/*
ОБ-ТЫ И МАССИВЫ
*/let obj1 = {id: 1}
// СОДЕРЖИМОЕ ОБ-ТА obj1 НЕ СКОПИРОВАЛОСЬ В obj2, // А ПЕРЕДАЛОСЬ ПО ССЫЛКЕ// ЭТО ОЗНАЧАЕТ, ЧТО obj2 НЕ ИМЕЕТ СОСБТВЕННОГО ЗНАЧЕНИЯ// А ЕГО СОДЕРЖИМОЕ УКАЗЫВАЕТ НА СОДЕРЖИМОЕ obj1let obj2 = obj1
// ПОЭТОМУ, ЕСЛИ МЫ ИЗМЕНИМ СОДЕРЖИМОЕ obj2 // ЭТО ТАКЖЕ ИЗМЕНИТ СОДЕРЖИМОЕ obj1
obj2.id = 2// obj2 = {id: 2} ПРИ ЭТОМ obj1 ТАКЖЕ СТАЛ = {id: 2}