Перадача аб'ектаў па спасылцы ў JavaScript

Масівы і аб'екты некалькі адрозніваюцца ад астатніх прымітыўных тыпаў даных. Адрозненне ў тым, што зменная, якая захоўвае масіў, на самой справе не змяшчае яго, а проста спасылаецца на яго.

На практыцы гэта азначае, што пры запісы аб'екта ў іншую зменную, абодве зменныя будуць спасылацца на адзін і той жа аб'ект. Давайце паспрабуем на практыцы. Хай у нас ёсць наступны аб'ект:

javascriptlet obj1 = {a: 1, b: 2, c: 3};

Прысвоім яго з адной зменнай у іншую:

javascriptlet obj2 = obj1;

Зменім адну з зменных:

javascriptobj2.a = '!';

У выніку змены будуць бачныя і ў іншай зменнай:

javascriptconsole.log(obj1); // {a: '!', b: 2, c: 3}
Задание 1

Не запускаючы код, вызначыце, што вывядзецца ў кансоль:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
console.log(arr2);
Задание 2

Не запускаючы код, вызначыце, што вывядзецца ў кансоль:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[1] = 'b';

console.log(arr1);
Задание 3

Не запускаючы код, вызначыце, што вывядзецца ў кансоль:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[0] = 'b';

console.log(arr2);