الدوال في JavaScript 🧩
JavaScript توفر عدة طرق لتعريف الدوال:
- Function Declaration:
function name() {} - Function Expression:
const fn = function() {} - Arrow Function:
const fn = () => {} - IIFE:
(function() {})()
مفاهيم متقدمة
- Default parameters
- Rest parameters (...args)
- Destructuring في المعاملات
- Closures
- Higher-order functions
تمرين
اكتب دالة compose() تأخذ عدة دوال وتعيد دالة واحدة تنفذها بالترتيب.
💡 تلميح: استخدم reduce لتطبيق الدوال بالتسلسل.
function compose(...fns) {
return (x) => fns.reduce((acc, fn) => fn(acc), x);
}
const double = x => x * 2;
const addOne = x => x + 1;
const square = x => x ** 2;
const transform = compose(double, addOne, square);
console.log(transform(3)); // ((3*2)+1)^2 = 49
console.log(transform(5)); // ((5*2)+1)^2 = 121