Câu hỏi phỏng vấn Javascript
Câu hỏi

Giải thích sự khác biệt giữa undefinednot defined trong JavaScript?

Câu trả lời

Trong JavaScript nếu bạn sử dụng một biến không tồn tại và chưa được khai báo, thì JavaScript sẽ thảy ra một lỗi var name is not defined và sau đó script sẽ bị ngừng thực thi. Nhưng nếu bạn sử dụng typeof undeclared_variable thì nó sẽ trả về undefined.

Trước khi bắt đầu thảo luận thêm, hãy hiểu sự khác biệt giữa khai báo và định nghĩa.

var x là một khai báo vì bạn chưa xác định nó giữ giá trị nào, bạn chỉ đang khai báo sự tồn tại của nó và nhu cầu cấp phát bộ nhớ.

js Copy
var x; // declaring x
console.log(x); //output: undefined

var x = 1 vừa là khai báo vừa là định nghĩa (cũng có thể nói là chúng ta đang khởi tạo), ở đây việc khai báo và gán giá trị xảy ra nội tuyến cho biến x, trong JavaScript mọi khai báo biến và khai báo hàm đều đưa lên đầu phạm vi (scope) hiện tại của nó, nó được khai báo sau đó việc gán diễn ra theo thứ tự, thuật ngữ này được gọi là hoisting.

Một biến được khai báo nhưng không được định nghĩa và khi chúng ta cố gắng truy cập vào nó, nó sẽ trả về kết quả là undefined.

js Copy
var x; // Declaration
if(typeof x === 'undefined') // Will return true

Một biến không được khai báo và cũng không được định nghĩa thì khi chúng ta cố gắng tham chiếu đến biến đó, kết quả sẽ là not defined.

js Copy
console.log(y); // Output: ReferenceError: y is not defined
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Kết quả đoạn code sau là gì? Hãy giải thích tại sao?

middle

Giải thích Function.prototype.bind trong javascript?

middle

Sự khác biệt giữa sự kiện tải trang document load event và sự kiện DOMContentLoaded event là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào