Hàm thuần
Bài học 3 trên 14 trong khóa học Khai báo hàm trong JavaScript của Coddy.
Trong JavaScript, hàm thuần (function) là hàm luôn trả về cùng một đầu ra khi nhận cùng một đầu vào và không tạo ra tác dụng phụ nào có thể quan sát được. Hàm thuần không thay đổi trạng thái bên ngoài hoặc tương tác với các biến bên ngoài.
Hàm thuần đặc biệt hữu ích trong:
Chuyển đổi dữ liệu: Lý tưởng để ánh xạ, lọc và rút gọn dữ liệu.
Quản lý trạng thái: Đảm bảo trạng thái bất biến, đặc biệt trong các framework như Redux.
Cú pháp của hàm thuần:
function add(a, b) {
return a + b;
}Hàm 'add' ở trên là hàm thuần vì hàm luôn tạo ra cùng một kết quả với cùng các đầu vào và không ảnh hưởng đến trạng thái bên ngoài.
Cú pháp của hàm không thuần:
let counter = 0;
function increment() {
return counter++;
}Hàm 'increment' này không thuần vì hàm thay đổi các biến hoặc trạng thái bên ngoài, gây ra tác dụng phụ.
Chuyển đổi hàm không thuần thành hàm thuần:
let total = 0;
// Hàm không thuần túy
function addToTotal(amount) {
total += amount;
return total;
}
// Tái cấu trúc hàm không thuần túy thành hàm thuần túy
// Hàm thuần túy (tạo giá trị total mới)
function addToTotal(total, amount) {
return total + amount;
}Trong ví dụ trên, việc chuyển đổi hàm không thuần thành hàm thuần đảm bảo hàm trả về một đối tượng mới mà không thay đổi đối tượng ban đầu.
Thử thách
DễBạn cần viết code JavaScript để tái cấu trúc hàm không thuần túy hiện có thành hàm thuần túy, đặt tên hàm này là nextBirthday.
Hàm nhận một đối số là tuổi.
Tự làm thử
let userAge = 24;
// Hàm (function) không thuần túy
function celebrateBirthday() {
userAge += 1;
return userAge;
}
// Không sửa đoạn code ở trên
// Viết code ở đâyTất cả bài học trong Khai báo hàm trong JavaScript
Tự luyện tập: Trình biên dịch JavaScript online