JavaScriptにおけるオブジェクトの参照渡し

配列とオブジェクトは、他のプリミティブデータ型とはいくつか異なる点があります。 その違いは、配列を格納する変数が実際には配列自体を含んでいるのではなく、 単にそれに参照しているだけだということです。

実際には、これはオブジェクトを別の変数に代入すると、 両方の変数が同じオブジェクトを参照することを意味します。 実際に試してみましょう。 次のようなオブジェクトがあるとします:

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

このオブジェクトをある変数から別の変数に代入します:

javascriptlet obj2 = obj1;

変数の1つを変更します:

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);