JavaScript is required

Cho đoạn code sau. Kết quả là:
const ar = [5, 1, 3, 7, 25]
const ar1 = ar;
console.log(ar1.sort());
([5, 25].indexOf(ar[1]) != -1 &&
console.log(ar.reverse())) ||
(ar[3] == 25 && console.log(ar));
console.log(ar1);

A.
[1, 3, 5, 7, 25] [7, 5, 3, 25, 1] [1, 25, 3, 5, 7] [1, 25, 3, 5, 7]
B.
[1, 25, 3, 5, 7] [5,1,3,7,25]
C.
[1, 25, 3, 5, 7] [7, 5, 3, 25, 1] [7, 5, 3, 25, 1] [7, 5, 3, 25, 1]
D.
An error is thrown
Trả lời:

Đáp án đúng: C


Đoạn code JavaScript này kiểm tra kiến thức về mảng, tham chiếu, hàm `sort`, `indexOf`, `reverse` và toán tử `&&`, `||`. 1. `const ar = [5, 1, 3, 7, 25]` Khởi tạo mảng `ar`. 2. `const ar1 = ar` Tạo một tham chiếu `ar1` đến mảng `ar`. Điều này có nghĩa là `ar` và `ar1` cùng trỏ đến một vùng nhớ duy nhất. Thay đổi trên `ar` sẽ ảnh hưởng đến `ar1` và ngược lại. 3. `console.log(ar1.sort())` Hàm `sort()` sắp xếp mảng tại chỗ (modify mảng gốc). Vì `ar1` là tham chiếu đến `ar`, cả `ar` và `ar1` đều bị thay đổi. Kết quả là `[1, 3, 5, 7, 25]` sẽ được in ra console. 4. `([5, 25].indexOf(ar[1]) != -1 && console.log(ar.reverse())) || (ar[3] == 25 && console.log(ar))` Đây là một biểu thức phức tạp sử dụng toán tử `&&` và `||`. * `ar[1]` hiện tại là `3` (vì mảng `ar` đã được sắp xếp ở bước trước). * `[5, 25].indexOf(ar[1])` tương đương `[5, 25].indexOf(3)`, trả về `-1` (vì `3` không có trong mảng `[5, 25]`). * `[5, 25].indexOf(ar[1]) != -1` là `false` (vì `-1 != -1` là `false`). * Do vế trái của `&&` là `false`, `console.log(ar.reverse())` không được thực thi. * Toán tử `||` sẽ xét vế bên phải: `(ar[3] == 25 && console.log(ar))` * `ar[3]` hiện tại là `7` (mảng `ar` đã được sắp xếp thành `[1, 3, 5, 7, 25]`). * `ar[3] == 25` là `false` (vì `7 == 25` là `false`). * Do vế trái của `&&` là `false`, `console.log(ar)` không được thực thi. 5. `console.log(ar1)` In ra mảng `ar1`. Vì `ar1` là tham chiếu đến `ar` và `ar` đã được sắp xếp, kết quả in ra là `[1, 3, 5, 7, 25]`. Vậy đáp án đúng là không có trong các phương án đã cho. Output đúng phải là: [1, 3, 5, 7, 25] [1, 3, 5, 7, 25]

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