בJAVASCRIPT , פונקציות הן חלק מרכזי בשפה, ויש כמה סוגים של פונקציות בהתאם לאופן שבו הן מוגדרות ולשימושים שלהן. הנה פירוט של הסוגים העיקריים:
הצהרת פונקציה (Function Declarations)
- מוגדרת באמצעות מילת המפתח
function. - "מוקפצת" (Hoisted): ניתן להשתמש בה לפני שהיא מוגדרת בקוד.
function sayHello() {
console.log("Hello!");
}
sayHello(); // Output: Hello!ביטוי פונקציה (Function Expressions)
- פונקציה שמוקצית למשתנה או לקבועה.
- אינה "מוקפצת": לא ניתן להשתמש בה לפני שהיא מוגדרת.
const greet = function() {
console.log("Hi!");
};
greet(); // Output: Hi!פונקציות חץ (Arrow Functions)
- הוצגו ב-ES6.
- בעלות תחביר קצר יותר ולא קושרות את המילה
thisבעצמן
const add = (a, b) => a + b; console.log(add(2, 3)); // Output: 5
פונקציות אנונימיות (Anonymous Functions)
- פונקציות ללא שם.
- בשימוש נפוץ כCALLBACK או כARGS לפונקציות אחרות.
setTimeout(function() {
console.log("Anonymous Function!");
}, 1000פונקציות שמבוצעות מיד (IIFE – Immediately Invoked Function Expressions)
- מבוצעות מיד לאחר שהן מוגדרות.
(function() {
console.log("IIFE");
})(); // Output: IIFEפונקציות גנרטור (Generator Functions)
- הוצגו ב-ES6.
- מוגדרות באמצעות התחביר
function*. - יכולות להחזיר ערכים מרובים באמצעות המילה
yield.
function* numbers() {
yield 1;
yield 2;
yield 3;
}
const gen = numbers();
console.log(gen.next().value); // Output: 1פונקציות אסינכרוניות (Async Functions)
- הוצגו ב-ES8.
- משמשות לפעולות אסינכרוניות ומחזירות אובייקט
Promise.
async function fetchData() {
const data = await fetch("https://api.example.com");
return data.json();
}פונקציות בונה (Constructor Functions)
- משמשות ליצירת אובייקטים עם פרוטוטייפ מסוים.
- מופעלות באמצעות המילה
new.
function Person(name) {
this.name = name;
}
const person = new Person("John");
console.log(person.name); // Output: Johnמטודות (Methods)
- פונקציות שמוגדרות כתכונות של אובייקטים.
const obj = {
greet: function() {
console.log("Hello!");
},
};
obj.greet(); // Output: Hello!מטודות סטטיות (Static Methods)
- מטודות שמוגדרות על מחלקה ונקראות על המחלקה עצמה ולא על המופע שלה.
class MathUtils {
static add(a, b) {
return a + b;
}
}
console.log(MathUtils.add(2, 3)); // Output: 5לסיכום פונקציות בJAVASCRIPT
לכל סוג של פונקציה יש שימושים שונים בהתאם להקשר ולצרכים של התכנות, JS מאפשרת לנו לשמור משתנים כפונקציות first-class functions, שזו תכונה מעניינת וגם חשובה, מאפשרת לנו סגנונות פיתוח מתקדמים כגון functional programing.





