var a = [1, 2, 3];

var a = [1, 2, 3];

var b = [1, 2, 3];

var c = ‘1,2,3’;

console.log(a == c);

console.log(b == c);

console.log(a == b);

Kết quả của đoạn code sau là:

A. true, true, false

B. true, true, true

C. true, false, false

D. false, false false

Hướng dẫn

Chọn A là đáp án đúng

Xem lời giải

Xem lời giải

Khi so sánh Double Equals (==) giữa array và string, cụ thể là a hoặc b với c, Javascript sẽ tự động gọi arr.toString() để chuyển đổi array sang string trước khi so sánh, hai mảng a và b convert sang string sẽ là ‘1,2,3’, vì thế a == c và b == c cho kết quả true.

Khi so sánh Double Equals (==) hay Triple Equals (===) giữa các đối tượng là kiểu dữ liệu tham chiếu (Reference Type), như object, array, function, chúng ta không quan tâm đến giá trị mà đối tượng đang chứa, mà chỉ quan tâm đến chúng có cùng trỏ đến một địa chỉ ô nhớ hay không mà thôi. Trong trường hợp này, a và b là hai array trỏ đến hai ô nhớ khác nhau, vì thế a == b cho kết quả false.

Tags: