p
Size: a a a
p
S
AK
AK
S
AK
AK
S
p
p
p
AK
p
p
S
₹
К
[
глубокое копирование и поверхностное копирование. Эти понятия есть не только в JS, но и в других языках, например в C++.const arr = [1, 2, 3, 4, 5, 6];В памяти:
Переменная Массив
[x] -> [x, x, x, x, x, x]
Это очень грубое представление, но суть в том, что ты должен представлять переменную и массив отдельно друг от друга в физической памяти. Переменная содержит ссылку (адрес) на массив, а массив же хранится где-то в другой части памяти. Когда ты пытаешься считать данные из переменной arr, то происходит переход по ссылке, которая содержится в переменной, чтобы найти в памяти данные массива.arr2, и сохраняешь в нее arr, то на самом деле копируются не данные массива, а только ссылка. В итоге получаем:const arr = [1, 2, 3, 4, 5, 6];В памяти:
const arr2 = arr;
Переменная Массив
[x], [x] -> [x, x, x, x, x, x]
Переменная Массив
[x] -> [x, x, x, x, x, x]
[x] -> [x, x, x, x, x, x]
Как делать глубокое копирование ищи уже сам.[
const a = [...b];const b = [1, 2, 3, 4];
const a = [];
a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
a[3] = b[3];