Tìm Hiểu Về JavaScript Hoisting

Viết bởi: Lê Trung , 9 tháng trước

JavaScript Hoisting Là Gì

Trong JavaScript, hoisting là việc đưa các khai báo biến lên phần đầu tiên của phạm vi mà biến được sử dụng.

Ví dụ khi bạn khai báo và sử dụng biến myNumber như sau:

myNumber = 20
alert(myNumber);
var myNumber;

Thì khi biên dịch đoạn mã trên, chương trình xử lý JavaScript sẽ viết lại chúng thành như sau:

var myNumber;
myNumber = 20;
alert(myNumber);

Và như vậy khi bạn sử dụng hàm alert thì giá trị của biến myNumber lúc này (trong cả 2 ví dụ) đều sẽ là 20.

JavaScript Không Hoisting Phép Khởi Tạo Biến

Các phép khởi tạo biến không được đưa lên trên đầu giống như các phép khai báo biến:

Ơ ví dụ sau phép khởi tạo biến var myNumber = 100 sẽ không được hoisting. Thay vào đó JavaScript chỉ hoist phần khai báo var myNumber lên trên đầu:

alert(myNumber);
var myNumber = 100; // Khởi tạo biến myNumber

Nói cách khác đoạn mã trên sẽ tương đương với:

var myNumber; // hoisting phép khai báo biến
alert(myNumber);
myNumber = 10; // phép gán giá trị cho biến không được hoisting

Và như vậy khi thực thi đoạn mã trên sẽ hiển thị hộp thoại thông báo giá trị của biến myNumber với giá trị là undefined.

Sử Dụng Hoisting Trong JavaScript

Do đặc tính hoisting nên khi viết mã lệnh JavaScript chúng ta nên đưa các khai báo biến nên trên đầu tiên thay vì để chúng ở cuối cùng. Điều này áp dụng trong mọi phạm vi sử dụng của biến ví dụ như trong hàm:

function sum () {
    var myNum;
    myNum = 20;
    alert(myNum);
}
JavaScript

Thêm Bình Luận: