פונקציה בשפת Javascript היא קטע קוד ובו משפט קוד אחד או יותר המאוגד תחת שם אחד. ניתן לקרוא ולהריץ פונקציות ב - Javascript פעם אחת או יותר. פונקציה ב - Javascript יכולה להכיל פרמטרים, המשמשים כמשתנים מקומיים בתוך הפונקציה. פרמטרים אלה מקבלים את ערכיהם הראשוניים בעת שקוראים לפונקציה. פונקציות יכולות גם להחזיר ערכים.פונקציות Javascript יכולות לקנן אלו בתוך אלו ויש להן גישה למשתנים שבתוך הפונקציות שבתוכן הוגדרו. משמעות הדבר שאם נתונות לנו שלוש פונקציות שהשנייה מוגדרת בתוך הראשונה והשלישית מוגדרת בתוך השנייה אזי לפונקציה השלישית יש גישה לכל המשתנשים שהוגדרו בפונקציה הראשונה ובפונקצייה השנייה וכמובן גם לכל המשתנים שהוגדרו בה עצמה.אם פונקציה מוגדרת לתכונה (property) של אובייקט היא מתפקדת כ - method. פונקציות שתוכננו ליצור אובייקט חדש נקראות constructor. בכלל, ב - Javascript פונקציה היא אובייקט. כאובייקט, פונקציה יכולה להיות בעלת תכונות (properties) שניתן להציב בהן ערכים, Methods שניתן להפעיל ועוד.

פונקציות ב - Javascript נגדיר באופן כללי כך:

functionfunctionName(Parameter1, Parameter2...){
Javascript statement/s;
return value;
}

ראשית נשתמש במילת המפתח function (באדום בדוגמה למעלה). לאחר מכן ניתן לפונקציה שלנו שם (בירוק בדוגמה שלנו). לאחר מכן יבואו סוגריים רגילים ובתוכם ישנה אפשרות להגדיר פרמטרים שהפונקציה מקבלת. לאחר מכן יבואו סוגריים מסולסלים (בסגול בדוגמה שלנו). לאחר מכן יבואו משפטי הקוד שמרכיבים את הפונקציה. הפונקציה יכולה (אך לא חייבת) להחזיר ערך ולשם כך נשתמש במילה return (בחום בדוגמה שלנו) ולאחר מכן יבוא הערך שהפונקציה תחזיר. לבסוף יחתמו את הפונקציה שלנו סוגריים מסולסלים (בסגול).

functionMultyplyNumbers(number1, number2) {
val n = (number1 * number2);
return n;
}

להלן דוגמה מעשית לפונקציה (לשינוי כתובת חלון) המקבלת פרמטר אחד ואינה מחזירה ערך


functionChangeURL(url) {
document.location=url;
}

הדרך המקובלת להגדרת פונקציות היא הדרך שאותה תיארתי בסעיף הקודם, אולם ישנה דרך נוספת להגדרת פונקציות הנקראות: literal functions. התחביר להגדרת פונקציה כזו דומה למדי לתחביר שבהגדרת פונקציה רגילה ההבדל הוא שבעוד אנו מגדירים פונקציה רגילה באמצעות משפטי Javascript (Statements) פונקציות ליטראליות נגדיר באמצעות ביטוי ולא נדרש לספק שם לפונקציה.

var VariableName = function(param1, param2...){
Javascript Statemenets
};

כפי שביכולתכם להיווכח מן הדוגמה למעלה לא נתנו לפונקציה שם והצבנו אותה כערך למשתנה כלשהו. מכל שאר הבחינות פונקציה ליטראלית זהה מבחינת התחביר שלה לפונקציה רגילה.

var multiply = function(x,y){ return x*y };

כדי לקרוא לפונקציה זו נשתמש בדרך הבאה:

multiply(2.5,4); // The result will be 10

ב - Javascript אין כללים מיוחדים לגבי האופן שבו על מזהים להיות מלבד העובדה שהם חייבים להתחיל באחת מן האותיות האנגליות, בקו תחתי או בסימן דולר. מעבר לזה אין כללים מיוחדים לבחירת שמות לפונקציות, אולם כדאי להשתמש בכללי האצבע הבאים בעת בחירת שם:/p>
  • רצוי לבחור בשם שממנו ניתן להבין מה הפונקציה עושה;
  • רצוי לבחור בשם קצר ואינטואיטיבי;
  • למרות שמבחינת התחביר של השפה אפשר גם אחרת, רצוי ששם הפונקציה יתחיל באותיות ולא במספרים או סימנים אחרים.
  • כחריג לכלל הקודם, רצוי להתחיל פונקציה שבה יש פנייה לספריית קוד חיצונית כ - jQuery בסימן $.