JavaScript is required

Cho đoạn code sau. Kết quả là:
const arr1 = ['a', 'b', 'c']
const arr2 = ['b', 'c', 'a']
console.log(
arr1.sort() === arr1,
arr2.sort() == arr2,
arr1.sort() === arr2.sort()
);

A.
true true true
B.
true true false
C.
false false false
D.
true false true
Trả lời:

Đáp án đúng: B


Đoạn code thực hiện các bước sau: 1. **Khởi tạo hai mảng:** - `arr1` được khởi tạo với các phần tử `['a', 'b', 'c']`. - `arr2` được khởi tạo với các phần tử `['b', 'c', 'a']`. 2. **So sánh sau khi sắp xếp:** - `arr1.sort() === arr1`: Hàm `sort()` sắp xếp mảng *tại chỗ* (in-place), nghĩa là nó thay đổi trực tiếp mảng gốc. Vì vậy, `arr1.sort()` trả về tham chiếu đến chính mảng `arr1` đã được sắp xếp. Do đó, `arr1.sort() === arr1` trả về `true` vì so sánh bằng toán tử `===` kiểm tra xem hai biến có tham chiếu đến cùng một đối tượng hay không. - `arr2.sort() == arr2`: Tương tự như trên, `arr2.sort()` sắp xếp mảng `arr2` tại chỗ và trả về tham chiếu đến `arr2`. Do đó, `arr2.sort() == arr2` trả về `true`. Lưu ý rằng ở đây sử dụng `==` (so sánh bằng) cũng cho kết quả tương tự `===` (so sánh bằng nghiêm ngặt) vì đang so sánh tham chiếu đến đối tượng. - `arr1.sort() === arr2.sort()`: Đầu tiên, `arr1.sort()` sắp xếp `arr1` thành `['a', 'b', 'c']`. Sau đó, `arr2.sort()` sắp xếp `arr2` thành `['a', 'b', 'c']`. Tuy cả hai mảng giờ có nội dung giống nhau, nhưng `arr1.sort()` và `arr2.sort()` trả về tham chiếu đến hai đối tượng mảng khác nhau trong bộ nhớ. Do đó, `arr1.sort() === arr2.sort()` trả về `false`. Vậy, kết quả cuối cùng là `true true false`.

Tổng hợp 500 câu hỏi trắc nghiệm Javascript có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


50 câu hỏi 60 phút

Câu hỏi liên quan