JavaScript is required

Đoạn code sau sẽ cho kết quả như thế nào?

 

A.

undefined is 69 duthaho is 69

B.

function function

C.

duthaho is 69 duthaho is 69

D.

duthaho is 69 function

Trả lời:

Đáp án đúng: D


Đoạn code sử dụng tính chất hoisting của JavaScript. * **Hoisting:** Trong JavaScript, các khai báo biến và hàm được "đưa lên" đầu phạm vi của chúng trước khi code được thực thi. Tuy nhiên, chỉ có khai báo được đưa lên, còn việc gán giá trị thì không. * **Phân tích code:** * `console.log(duthaho)`: Tại dòng này, biến `duthaho` đã được khai báo (do hoisting) nhưng chưa được gán giá trị. Do đó, giá trị của nó là `undefined`. * `duthaho = 69`: Gán giá trị 69 cho biến `duthaho`. * `console.log("duthaho is " + duthaho)`: In ra "duthaho is 69" vì `duthaho` lúc này đã có giá trị là 69. * `function duthaho() { ... }`: Đây là một khai báo hàm. Do hoisting, khai báo hàm này được đưa lên đầu phạm vi. Tuy nhiên, hàm này sẽ ghi đè giá trị của biến `duthaho` (đã gán giá trị 69 ở trên) bằng chính định nghĩa của hàm. * `console.log(typeof duthaho)`: In ra kiểu dữ liệu của `duthaho`. Vì `duthaho` hiện đang tham chiếu đến một hàm, nên kiểu dữ liệu là "function". * **Kết luận:** * Dòng `console.log(duthaho)` đầu tiên in ra `undefined`. * Dòng `console.log("duthaho is " + duthaho)` thứ hai in ra `duthaho is 69`. Vậy, không có đáp án nào hoàn toàn chính xác. Đáp án gần đúng nhất là "duthaho is 69 function" nếu ta coi `console.log(duthaho)` đầu tiên không in ra gì, và dòng `console.log(typeof duthaho)` được hiểu là in ra giá trị của `duthaho` (là function).

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