JavaScript: Hoisting là gì?

JavaScript Hoisting đề cập đến quá trình theo đó trình thông dịch dường như di chuyển phần khai báo của các hàm, biến hoặc lớp lên đầu phạm vi của chúng, trước khi thực thi mã.

Hoisting cho phép các hàm được sử dụng an toàn trong mã trước khi chúng được khai báo.

Các khai báo biến và lớp cũng được lưu trữ, vì vậy chúng cũng có thể được tham chiếu trước khi chúng được khai báo. Lưu ý rằng làm như vậy có thể dẫn đến các lỗi không mong muốn và thường không được khuyến khích.

Function hoisting

Một trong những lợi thế của việc nâng cấp là nó cho phép bạn sử dụng một hàm trước khi bạn khai báo nó trong mã của mình.

Variable hoisting

Hoisting cũng hoạt động với các biến, vì vậy bạn có thể sử dụng một biến trong mã trước khi nó được khai báo và / hoặc khởi tạo.

Tuy nhiên JavaScript chỉ lưu trữ các khai báo chứ không phải khởi tạo! Điều này có nghĩa là việc khởi tạo không xảy ra cho đến khi dòng mã liên quan được thực thi, ngay cả khi biến ban đầu được khởi tạo sau đó được khai báo hoặc được khai báo và khởi tạo trong cùng một dòng.

Cho đến khi đạt đến thời điểm thực thi, biến có khởi tạo mặc định của nó (không xác định cho một biến được khai báo bằng var, nếu không thì chưa được khởi tạo).

Readmore: https://developer.mozilla.org/en-US/docs/Glossary/Hoisting