Hoisting

Hoisting là một khái niệm trong JavaScript mô tả cách mà trình thông dịch (interpreter) xử lý các khai báo biến và hàm trước khi thực thi mã. Cụ thể, các khai báo biến và hàm được "đưa lên trên" (hoisted) phạm vi của chúng (function scope hoặc global scope) trước khi mã được thực thi.

Chi tiết về Hoisting

1. Hoisting với biến (var):

Khi bạn khai báo một biến bằng var, biến đó được hoisted lên đầu phạm vi của nó, nhưng chỉ có phần khai báo được hoisted, không phải phần gán giá trị.

Ví dụ:Mặc dù dòng console.log(x); xuất hiện trước var x = 5;, nhưng do hoisting, phần khai báo var x; được đưa lên đầu, và biến x được khởi tạo với giá trị undefined trước khi gán giá trị 5.

console.log(x); // undefined
var x = 5;
console.log(x); // 5

2. Hoisting với hàm (function declaration):

Toàn bộ khai báo hàm (bao gồm cả tên hàm và định nghĩa) được hoisted. Điều này có nghĩa là bạn có thể gọi một hàm trước khi nó được khai báo trong mã.

Ví dụ:Trong ví dụ này, hàm greet có thể được gọi trước khi khai báo nhờ hoisting.

greet(); // Hello, World!

function greet() {
  console.log("Hello, World!");
}

3. Hoisting với letconst:

Các biến được khai báo bằng letconst cũng được hoisted, nhưng khác với var, chúng không được khởi tạo với giá trị undefined. Thay vào đó, chúng nằm trong một "temporal dead zone" (vùng chết tạm thời) từ đầu phạm vi cho đến khi khai báo thực sự của chúng được thực thi. Điều này có nghĩa là bạn không thể sử dụng biến đó trước khi khai báo.

console.log(y); // ReferenceError: Cannot access 'y' before initialization
let y = 10;

Tóm lại

Hoisting giúp giải thích lý do tại sao bạn có thể sử dụng các biến hoặc hàm trước khi chúng xuất hiện trong mã, nhưng cần chú ý rằng việc hiểu cách hoisting hoạt động là quan trọng để tránh những lỗi khó nhận biết, đặc biệt khi sử dụng var. Với let và const, bạn cần chắc chắn rằng biến được khai báo trước khi sử dụng để tránh lỗi.

Bài viết liên quan

Grok AI – Trợ lý AI đa năng của xAI!

25-02-2025 Admin
121 views + likes

Grok AI là một trợ lý AI tiên tiến được phát triển bởi xAI, công ty do Elon Musk sáng lập

OpenAI Chuẩn Bị Ra Mắt GPT Thế Hệ Mới Với Khả Năng Tương Tác Siêu Thực!

24-02-2025 Admin
52 views + likes

OpenAI vừa hé lộ về thế hệ GPT mới nhất, hứa hẹn sẽ mang lại khả năng tương tác tự nhiên và siêu thực hơn bao giờ hết.

Làm quen với VueJS

26-10-2024 Admin
142 views + likes

Nếu bạn mới bắt đầu học lập trình front-end, thì Vue.js là một gợi ý không thể bỏ qua vì cách tiếp cận và sử dụng rất dễ dàng.

Lý thuyết về Cookie & Session & Localstorage

18-10-2024 Admin
143 views + likes

Cookie thích hợp cho việc lưu trữ thông tin nhỏ và ngắn hạn, Session là lựa chọn tốt để lưu trữ thông tin bảo mật như phiên làm việc

Network request trong JS

10-10-2024 Admin
127 views + likes

Network request trong JS