Sự khác biệt trong khai báo hàm

Cả hai cách khai báo hàm đều tương đương, nhưng có một sự khác biệt đáng kể: các hàm được khai báo dưới dạng Function Declaration sẽ có sẵn, ngay cả khi truy cập chúng trước thời điểm chúng được khai báo.

Xem ví dụ:

javascript// Truy cập hàm trước khi khai báo nó:
func(); //sẽ in ra '!'

function func() {
  console.log('!');
}

Còn các biểu thức hàm được tạo ra tại thời điểm mã thực thi và không khả dụng ở phía trên. Do đó mã như thế này sẽ báo lỗi:

javascriptfunc(); //lỗi, hàm này chưa tồn tại!

let func = function() {
  console.log('!');
};
Задание 1

Tạo một hàm dưới dạng Function Declaration. Kiểm tra xem nó có khả dụng ở phía trên vị trí khai báo của nó hay không.

Задание 2

Tạo một hàm dưới dạng Function Expression. Kiểm tra xem nó có khả dụng ở phía trên vị trí khai báo của nó hay không.