JavaScript is required

Cho đoạn code sau. Kết quả là:
function ArrayBoolean() {
if ([] == true && [1] == true) return [true, true]
else if ([] == true && [1] == false) return [true, false]
else if ([] == false && [1] == true) return [false, true]
else return [false, false]
}ArrayBoolean();

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

Đáp án đúng: C


Trong JavaScript, khi so sánh một mảng rỗng `[]` với kiểu boolean `true` bằng toán tử `==`, JavaScript sẽ thực hiện ép kiểu. Mảng rỗng `[]` sẽ được ép thành số 0, và `true` sẽ được ép thành số 1. Do đó, `[] == true` tương đương với `0 == 1`, kết quả là `false`. Tương tự, khi so sánh một mảng có một phần tử `[1]` với kiểu boolean `true`, JavaScript cũng thực hiện ép kiểu. Mảng `[1]` sẽ được ép thành số 1, và `true` cũng là 1. Do đó, `[1] == true` tương đương với `1 == 1`, kết quả là `true`. Như vậy, điều kiện đầu tiên `([] == true && [1] == true)` sẽ là `(false && true)`, kết quả là `false`. Do đó, chương trình sẽ nhảy xuống `else if`. Tiếp theo, chương trình sẽ xét điều kiện `([] == false && [1] == true)`. `[] == false` tương đương `0 == 0` là `true`, `[1] == true` tương đương `1 == 1` là `true`. Do đó, điều kiện `(true && true)` là `true`. Chương trình sẽ trả về `[false, true]`

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