Bộ 11 - Trắc nghiệm JavaScript (JS Quiz) online có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:Trong JavaScript, kết quả của biểu thức 'typeof null' là gì?
💡 Lời giải chi tiết:
Do một lỗi thiết kế từ phiên bản đầu tiên của JavaScript, toán tử typeof trả về giá trị object cho một biến chứa giá trị rỗng. Kết luận Lý giải: object
Câu 2:Kết quả của biểu thức '0 == false' và '0 === false' lần lượt là gì?
💡 Lời giải chi tiết:
Toán tử '==' thực hiện chuyển đổi kiểu dữ liệu khiến 0 bằng false, trong khi '===' so sánh cả giá trị và kiểu dữ liệu nên kết quả là khác nhau. Kết luận Lý giải: true và false
Câu 3:Từ khóa nào được sử dụng để khai báo một biến có phạm vi khối (block scope) và không thể gán lại giá trị?
💡 Lời giải chi tiết:
Trong tiêu chuẩn ES6, từ khóa const được dùng để khai báo hằng số có phạm vi trong khối và ngăn chặn việc gán lại địa chỉ vùng nhớ. Kết luận Lý giải: const
Câu 4:Kết quả của biểu thức '1' + 2 + 3 trong JavaScript là gì?
💡 Lời giải chi tiết:
Khi thực hiện phép cộng với chuỗi, JavaScript sẽ ưu tiên chuyển đổi các toán hạng số còn lại thành chuỗi và thực hiện phép nối. Kết luận Lý giải: 123
Câu 5:Lệnh 'console.log(a); var a = 5;' sẽ trả về kết quả gì do cơ chế hoisting?
💡 Lời giải chi tiết:
Cơ chế hoisting đưa khai báo biến var lên đầu phạm vi nhưng không đưa giá trị khởi tạo lên theo, dẫn đến biến có giá trị mặc định là chưa xác định. Kết luận Lý giải: undefined
Câu 6:Hàm nào được sử dụng để chuyển đổi một chuỗi JSON thành một đối tượng JavaScript?
💡 Lời giải chi tiết:
Phương thức JSON.parse() phân tích cú pháp một chuỗi văn bản định dạng JSON để tạo ra giá trị hoặc đối tượng tương ứng. Kết luận Lý giải: JSON.parse()
Câu 7:Phương thức 'map()' của mảng trong JavaScript dùng để làm gì?
💡 Lời giải chi tiết:
Hàm map() duyệt qua từng phần tử và trả về một mảng mới có cùng độ dài dựa trên giá trị xử lý của hàm gọi lại. Kết luận Lý giải: Tạo ra một mảng mới với các phần tử là kết quả của việc thực thi một hàm lên từng phần tử mảng cũ
Câu 8:Trong JavaScript, 'NaN' có kiểu dữ liệu là gì?
💡 Lời giải chi tiết:
Mặc dù viết tắt của 'Not a Number', NaN vẫn được định nghĩa là một giá trị thuộc kiểu dữ liệu số trong đặc tả kỹ thuật. Kết luận Lý giải: number
Câu 9:Làm thế nào để kiểm tra một biến có phải là mảng hay không một cách chính xác nhất?
💡 Lời giải chi tiết:
Phương thức Array.isArray() là cách tin cậy nhất để xác định một đối tượng có phải là mảng hay không, kể cả khi làm việc với các iframe khác nhau. Kết luận Lý giải: Array.isArray(biến)
Câu 10:Đặc điểm nào sau đây mô tả đúng về Arrow Function (Hàm mũi tên) trong ES6?
💡 Lời giải chi tiết:
Arrow function không tạo ra ngữ cảnh 'this' mới mà sử dụng giá trị 'this' từ phạm vi lexical nơi nó được định nghĩa. Kết luận Lý giải: Không có 'this' riêng mà kế thừa từ phạm vi bao quanh nó
Câu 11:Biểu thức '[] == ![]' trả về giá trị gì?
💡 Lời giải chi tiết:
Do các quy tắc ép kiểu phức tạp, cả hai vế đều được đưa về giá trị số 0 khi so sánh bằng toán tử '=='. Kết luận Lý giải: true
Câu 12:Câu lệnh nào dùng để dừng việc thực hiện của một vòng lặp ngay lập tức?
💡 Lời giải chi tiết:
Từ khóa break được sử dụng để thoát khỏi cấu trúc vòng lặp hoặc lệnh switch ngay tại vị trí nó xuất hiện. Kết luận Lý giải: break
Câu 13:Kết quả của biểu thức '3 > 2 > 1' trong JavaScript là gì?
💡 Lời giải chi tiết:
Biểu thức được tính từ trái sang phải: '3 > 2' là true, sau đó 'true > 1' chuyển thành '1 > 1' dẫn đến kết quả sai. Kết luận Lý giải: false
Câu 14:Trong Promise, trạng thái nào cho biết thao tác bất đồng bộ đã hoàn thành thành công?
💡 Lời giải chi tiết:
Trạng thái fulfilled (thường được gọi là resolved) biểu thị rằng lời hứa đã được thực hiện thành công với một giá trị kết quả. Kết luận Lý giải: resolved (fulfilled)
Câu 15:Toán tử 'spread' (...) khi áp dụng cho một mảng có tác dụng gì chính yếu?
💡 Lời giải chi tiết:
Toán tử spread cho phép mở rộng một thực thể có khả năng lặp như mảng vào các vị trí mong đợi nhiều phần tử hoặc tham số. Kết luận Lý giải: Trải các phần tử của mảng vào một danh sách các tham số hoặc một mảng mới
Câu 16:Khối lệnh 'try...catch' được sử dụng chủ yếu để làm gì?
💡 Lời giải chi tiết:
Cấu trúc try...catch cho phép lập trình viên bắt và xử lý các lỗi runtime để tránh làm sập ứng dụng. Kết luận Lý giải: Xử lý các ngoại lệ (lỗi) xảy ra trong quá trình thực thi mã
Câu 17:Sự khác biệt chính giữa 'Map' và 'Object' trong JavaScript là gì?
💡 Lời giải chi tiết:
Trong khi Object chỉ hỗ trợ khóa là chuỗi hoặc biểu tượng, Map linh hoạt hơn khi cho phép mọi kiểu dữ liệu làm khóa. Kết luận Lý giải: Map cho phép sử dụng bất kỳ kiểu dữ liệu nào làm khóa, kể cả đối tượng
Câu 18:Trong chế độ 'strict mode' ('use strict'), việc gán giá trị cho một biến chưa được khai báo sẽ dẫn đến điều gì?
💡 Lời giải chi tiết:
Chế độ nghiêm ngặt ngăn chặn việc tạo biến toàn cục ngoài ý muốn bằng cách yêu cầu mọi biến phải được khai báo rõ ràng. Kết luận Lý giải: Ném ra một lỗi ReferenceError
Câu 19:Đối tượng 'Set' trong JavaScript được dùng để lưu trữ gì?
💡 Lời giải chi tiết:
Cấu trúc dữ liệu Set đảm bảo mỗi giá trị chỉ xuất hiện một lần duy nhất trong tập hợp đó. Kết luận Lý giải: Tập hợp các giá trị duy nhất, không trùng lặp
Câu 20:Phương thức 'bind()' trả về kết quả là gì?
💡 Lời giải chi tiết:
Phương thức bind() tạo ra một bản sao của hàm gốc nhưng liên kết giá trị 'this' với đối tượng được truyền vào. Kết luận Lý giải: Một hàm mới với ngữ cảnh 'this' được chỉ định cố định
Câu 21:Template literals trong ES6 sử dụng ký tự nào để bao quanh chuỗi?
💡 Lời giải chi tiết:
Ký tự backtick (dấu huyền) cho phép tạo chuỗi nhiều dòng và nhúng các biểu thức JavaScript thông qua cú pháp ${}. Kết luận Lý giải: Dấu huyền ( ' )
Câu 22:Toán tử '??' (Nullish Coalescing) sẽ trả về vế phải khi vế trái có giá trị nào?
💡 Lời giải chi tiết:
Khác với toán tử logic OR, toán tử ?? chỉ phản hồi với hai giá trị vô định là null và undefined. Kết luận Lý giải: null hoặc undefined
Câu 23:Hàm 'setTimeout()' thực thi một đoạn mã sau một khoảng thời gian được tính bằng đơn vị nào?
💡 Lời giải chi tiết:
Tham số thời gian trong setTimeout() được xác định bằng mili giây (1 giây bằng 1000 mili giây). Kết luận Lý giải: Mili giây
Câu 24:Kết quả của 'eval('2 + 2')' trong JavaScript là gì?
💡 Lời giải chi tiết:
Hàm eval() thực thi một chuỗi văn bản như thể nó là mã nguồn JavaScript và trả về kết quả tính toán. Kết luận Lý giải: 4
Câu 25:Cú pháp giải nén mảng (Array Destructuring) nào sau đây là đúng để lấy giá trị đầu tiên?
💡 Lời giải chi tiết:
Sử dụng dấu ngoặc vuông bên trái phép gán cho phép trích xuất các phần tử mảng vào các biến riêng biệt một cách ngắn gọn. Kết luận Lý giải: let [x] = array;