Cơ BảnJavaScript iconJavaScript

Sự khác biệt giữa function declaration, function expression và arrow function là gì?

Ba cách định nghĩa hàm trong JS, khác nhau về hoisting và this binding:

1) Function declaration
function sum(a, b) { return a + b }
- Có thể gọi trước chỗ khai báo (hoisting).

2) Function expression
const sum = function(a, b) { return a + b }
- Chỉ gọi được sau khi gán.

3) Arrow function
const sum = (a, b) => a + b
- Ngắn gọn, không có this riêng, không dùng làm constructor.

Cho người mới: bắt đầu bằng declaration hoặc expression, dùng arrow nhiều cho callback.

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript