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.