JavaScripts
4.12 Khái niệm về Hoisting :Đưa phần khai báo lên đầu phạm vi(Declaration function)
Khi thực hiện thao tác gọi hàm trước khi hàm đó được khởi tạo thì việc đó vẫn sẽ được thực hiện vì trong JS có thuộc tính mặc định là Hoisting khi tạo hàm với var,let,const.Tuy nhiên trường hợp với let,const thực chất vẫn có Hoisting nhưng sẽ lưu vào Temporal dead zone cho nên khi gọi hàm trước khi khai báo sẽ báo lỗi.
Hoisting chỉ trong scop(phạm vi) local.Ví dụ trong 1 hàm có 1 hàm thì Hoisting chỉ có hiệu lực ở trong hàm trong cùng,nếu gọi hàm con ngoài hàm cha thì sẽ xảy ra lỗi.
Hoisting vẫn có hiệu lực khi có lệnh return trước khi viết lệnh trong hàm(mặc dù return có tính chất thoát hàm)
Function Expression: Hosting không có hiệu lực.
Function Declaration:
function handleClick() { console.log("clicked") }
Function Expression:
const handleClick = function() { console.log("clicked") }