Truyền đối tượng theo tham chiếu trong JavaScript

Mảng và đối tượng khác biệt đôi chút so với các kiểu dữ liệu nguyên thủy còn lại. Sự khác biệt ở chỗ một biến lưu trữ mảng thực chất không chứa mảng đó, mà chỉ đơn thuần tham chiếu đến nó.

Trong thực tế, điều này có nghĩa là khi gán một đối tượng cho một biến khác, cả hai biến sẽ tham chiếu đến cùng một đối tượng. Hãy cùng thử nghiệm trên thực tế. Giả sử chúng ta có đối tượng sau:

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

Hãy gán nó từ biến này sang biến khác:

javascriptlet obj2 = obj1;

Hãy thay đổi một trong các biến:

javascriptobj2.a = '!';

Kết quả là những thay đổi sẽ hiển thị cả trong biến kia:

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

Không chạy code, hãy xác định điều gì sẽ được in ra trong console:

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

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

Không chạy code, hãy xác định điều gì sẽ được in ra trong console:

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

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

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

Không chạy code, hãy xác định điều gì sẽ được in ra trong console:

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

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

console.log(arr2);