JavaScript is required

Kết quả khi thực hiện các dòng lệnh sau:

const x = [1, 2, 3]

x[-1] = -1;

console.log(x[x.indexOf(10000)]);

A.

Lỗi

B.

-1

C.

2

D.

3

Trả lời:

Đáp án đúng: B


Đầu tiên, `x` được khởi tạo là một mảng `[1, 2, 3]`. Sau đó, `x[-1] = -1;` gán giá trị `-1` cho thuộc tính `-1` của mảng `x`. Trong JavaScript, mảng là một đối tượng, nên việc gán `x[-1]` thực chất là tạo một thuộc tính mới cho đối tượng `x` chứ không phải là truy cập một phần tử của mảng theo index âm. Các phần tử của mảng phải được truy cập bằng các chỉ số không âm. Tiếp theo, `x.indexOf(10000)` tìm kiếm giá trị `10000` trong mảng `x`. Vì `10000` không có trong mảng, `indexOf` trả về `-1`. Cuối cùng, `x[x.indexOf(10000)]` tương đương với `x[-1]`, và như đã nói ở trên, `x[-1]` trả về giá trị `-1` đã được gán trước đó. Do đó, `console.log(x[x.indexOf(10000)])` in ra `-1`.

Câu hỏi liên quan