Passaggio di oggetti per riferimento in JavaScript

Gli array e gli oggetti differiscono in qualche modo dai restanti tipi di dati primitivi. La differenza sta nel fatto che una variabile che memorizza un array, in realtà non lo contiene, ma semplicemente fa riferimento ad esso.

Nella pratica, ciò significa che quando si assegna un oggetto a un'altra variabile, entrambe le variabili faranno riferimento allo stesso identico oggetto. Proviamo nella pratica. Supponiamo di avere il seguente oggetto:

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

Assegniamolo da una variabile a un'altra:

javascriptlet obj2 = obj1;

Modifichiamo una delle variabili:

javascriptobj2.a = '!';

Di conseguenza, le modifiche saranno visibili anche nell'altra variabile:

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

Senza eseguire il codice, determina cosa verrà visualizzato in console:

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

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

Senza eseguire il codice, determina cosa verrà visualizzato in console:

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

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

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

Senza eseguire il codice, determina cosa verrà visualizzato in console:

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

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

console.log(arr2);