Computer >> Máy Tính >  >> Lập trình >> Javascript

Hàm lưu trữ trong JavaScript

Hoisting là một kỹ thuật JavaScript di chuyển các biến và khai báo hàm lên đầu phạm vi của chúng trước khi bắt đầu thực thi mã. Trong phạm vi bất kể hàm hoặc biến được khai báo ở đâu, chúng sẽ được chuyển lên đầu phạm vi.

Lưu ý rằng việc nâng cấp chỉ di chuyển khai báo trong khi các nhiệm vụ được giữ nguyên.

Ví dụ

console.log(functionBelow("Hello"));
function functionBelow(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

Đầu ra

Hello world
Hi world

Lưu ý rằng khai báo hàm sau khi nó được gọi nhưng vẫn được gọi. Điều này có thể xảy ra do chức năng cẩu.

Cũng lưu ý rằng nó không hoạt động khi bạn gán các hàm như biến.

console.log(functionBelow("Hello"));
var functionBelow = function(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

Điều này sẽ không thành công với lỗi:functionBelow không phải là một hàm

Nếu bạn xóa var, nó sẽ không thành công với lỗi:functionBelow không được xác định

Lưu ý rằng khi nó được khai báo bằng var, nó được lưu vào dưới dạng một biến trong ngữ cảnh. Nhưng nó vẫn không được xác định. Điều này được gọi là cẩu biến. Do thuộc tính này, các hàm ẩn danh và mũi tên không bao giờ được đưa vào JavaScript.