PracticU

פונקציות ב-Javascript

בלי כתוביותעם כתוביות
PracticU › קורס Javascript כולל JQuery › פונקציות ב-Javascript
מילון מושגים:
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.

פונקציות ב-Javascript
פונקציה עוטפת קטע קוד בשם, כך שהוא מתבצע רק כשקוראים לו. השיעור עובר על יצירת פונקציה, שליחת פרמטרים, החזרת ערך ופונקציות בקובץ חיצוני.
השלבים העיקריים
1. הגדרה וקריאה: פונקציה מוגדרת במילה function, עם שם, סוגריים לרשימת הפרמטרים (ריקים אם אין כאלה), ובלוק קוד. הקוד בתוכה לא רץ בטעינת הדף, אלא רק כשקוראים לה בשמה, ואפשר לקרוא לה כמה פעמים.
2. פרמטרים: ערכים נשלחים בסוגריים בזמן הקריאה, ונכנסים לפרמטרים לפי הסדר. בהגדרה לא כותבים var לפני שם הפרמטר. בדוגמה הפונקציה showMax מקבלת שני ערכים ומציגה את הגדול מביניהם.
3. החזרת ערך: return מחזיר ערך מהפונקציה, והקורא יכול לשמור אותו במשתנה ולעשות איתו משהו.
4. חלק מהפרמטרים: אפשר לקרוא לפונקציה עם פחות ערכים ממה שהיא מגדירה. הפרמטרים שלא נשלחו מקבלים את הערך undefined. בשפות רבות זה לא אפשרי, אבל ב-JavaScript זה כן.
5. פונקציה בקובץ חיצוני: פונקציה שנמצאת בקובץ js נפרד מקושרת לדף בתגית script עם src. אחרי הקישור הדף מכיר את הפונקציות שבקובץ וקורא להן כמו פונקציות שבדף.
6. פונקציה בוליאנית: פונקציה שמחזירה true או false, ונהוג לתת לה שם שמתחיל ב-is, למשל לבדיקה אם מספר חיובי. מחזירים את התנאי עצמו, כי הוא כבר true או false.
שימו לב
אם מגדירים שתי פונקציות באותו שם, השנייה דורסת את הראשונה, ולא משנה איפה נמצאת הקריאה. כדאי להימנע מזה, במיוחד כשכמה קבצים נטענים לאותו דף.
return מסיים את הפונקציה מיד, ולכן אחריו אין צורך ב-else.
השיעור מסתיים ביכולת לכתוב פונקציה עם פרמטרים, להחזיר ממנה ערך ולשמור פונקציות בקובץ חיצוני.
השיעור הבא בקורס: Chars
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
Java - שפת תכנות עילית ומונחית עצמים, הרצה על מכונה וירטואלית (JVM) ומשמשת לפיתוח מגוון יישומים.

להורדת קוד מקור של כל הדוגמאות בקורס  JAVA SCRIPT למתחילים -לחץ כאן לתלמידי המכללה בלבד

להורדת קוד מקור של כל הדוגמאות בקורס  JAVA SCRIPT למתקדמים- לחץ כאן לתלמידי המכללה בלבד

פרקי ההרצאה: פונקציות ב-Javascript

  1. 00:00

    הכרת פונקציות

  2. 00:37

    הגדרת function

  3. 01:40

    קריאה לפונקציה

  4. 02:18

    פרמטרים לפונקציה

  5. 03:36

    החזרת ערך עם return

  6. 05:42

    פרמטרים חסרים ו-undefined

  7. 06:55

    פונקציה בקובץ חיצוני

  8. 08:46

    שתי פונקציות בשם זהה

תמלול ההרצאה: פונקציות ב-Javascript

הטקסט המלא של הדקות הראשונות בהרצאה «פונקציות ב-Javascript» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

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

  2. 00:09

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

  3. 00:28

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

  4. 00:43

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

  5. 01:08

    בואו נשמור, נריץ את זה כעת, ונראה בעצם שלמרות שהדף עולה, שום דבר לא קורה. אנחנו רואים שלא קיבלנו פה שום אלרט, שום תיבה לא קופצת.

  6. 01:23

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

  7. 01:44

    אם אני עכשיו הייתי משכפל את הפונקציה הזאתי, את הקריאה ליתר דיוק, זאת אומרת ששלוש פעמים קראתי לפונקציה שלנו. בואו נריץ.

  8. 01:56

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

  9. 02:18

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

  10. 02:35

    בואו נכתוב פונקציה שנקרא לה show max והיא תקבל שני ערכים. כאשר אנחנו מקבלים ערכים לפונקציה אנחנו פשוט רק רושמים את השמות שלהם בסוגריים.

  11. 02:50

    בגלל שאנחנו ראינו שכל משתנה הטיפוס שלו הוא var, אנחנו לא רושמים var לפני הטיפוס כי זה דבר שהוא ברור מאליו. עכשיו בוא נניח שאני פותח פה איזשהו max, נכניס לתוכו את הערך המקסימלי מתוך a וb אם a יותר גדול מb אנחנו נכניס את a אחרת נכניס את b ונציג את max.

  12. 03:17

    כעת אם אנחנו נקרא לפונקציה הזאת show max אנחנו רואים שהיא מבקשת מאיתנו לתת שני המספרים. בואו ניתן 1 1 ו-2 2 נריץ את התוכנית ונראה שהפונקציה פשוט קיבלה את שני הערכים עשתה איזשהו חישוב והציגה את התוצאה.

  13. 03:39

    דבר נוסף שאפשר לעשות מפונקציות זה להחזיר תוצאה. בואו נבנה פונקציה נוספת שנקראת getMax מקבלת שני ערכים מוצאת את הערך המקסימלי אבל לא מציגה אותו אלא מחזירה אותו לצורך החזרה אנחנו משתמשים בפקודת ריטיון כעת כשאני קורא לפונקציה אני יודע שהיא הולכת להחזיר לי ערך בחזרה אם אני עכשיו נותן לה את 1,1 ו-2,2 אני אמור גם לקבל בחזרה את הערך לדוגמה נפתח

  14. 04:21

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

  15. 04:47

    עכשיו יש נתון מאוד מעניין בקשר לפונקציות בג'אווה סקריפט. פונקציה יכולה לקבל כמה ערכים, בואו ניתן דוגמה. נקבל את a, b, c ו-d, ובואו נניח שהיא מציגה אותם.

  16. 05:19

    בואו נקרא לפונקציה הזאת, ואני רואה שהיא מבקשת ממני את כל הערכים. ניתן לה ארבע ערכים, נכבה את הקריאות הקודמות, בואו נריץ.

  17. 05:37

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

  18. 05:47

    בואו נגיד שאנחנו לא שולחים לה שני הערכים אחרונים אלא רק שניים ראשונים. בואו נריץ ונראה מה עכשיו ערכם של הערכים שלא שלחנו. אנחנו רואים שהערך הראשון התקבל והוא 1,1.

  19. 06:02

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

  20. 06:29

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

  21. 06:51

    לקבל. אנחנו גם יכולים לכתוב פונקציה שנמצאת בקובץ js חיצוני. בואו נצרף קובץ JavaScript חיצוני, וכאן נכתוב את הפונקציה שלנו.

  22. 07:27

    אוקיי, נשמור את הקובץ הזה, נקרא לו myfunctions, או יותר נכון functions.js, נשמור אותו ביחד עם קובץ ה-HTML, שניהם נמצאים על הדסטופ כרגע, ואם אנחנו זוכרים אנחנו צריכים להפנות את קובץ ה-HTML,

  23. 07:46

    לקובץ ה-JS החיצוני, כלומר שקובץ ה-HTML יכיר אותו, וזה מתבצע על ידי סקריפט נוסף, בואו נעתיק את ההתחלה של הסקריפט הזה, נדביק ונוסיף src שווה, נגדיר את הקובץ ההוא כטארגט, ולא לשכוח לסגור את התגיד.

  24. 08:11

    כעת הקובץ שלנו מכיר גם את קובץ ה-JavaScript החיצוני, וזה אומר שהוא מכיר גם את הפונקציות שבו. אז בואו כרגע נכבה את הקריאה הקודמת, ונקרא ל-showMessage.

  25. 08:25

    אנחנו כבר יכולים לראות אותו פה באינטליסנס בחלון ההצעות. הוא מקבל איזשהו מסג', בואו נריץ, ונראה שלמרות שהפונקציה נמצאת בקובץ JavaScript חיצוני, אם אנחנו ביצענו הכוונה אליו או בעצם קישור אליו, אז הקובץ HTML שלנו מכיר אותו ואנחנו יכולים להשתמש בכל הפונקציות שנמצאות בו.

  26. 08:55

    אוקיי, מה קורה אם יש לנו שתי פונקציות עם אותו השם? בואו ניקח כאן function, do something, שמציגה איזושהי הודעה.

  27. 09:21

    ניקח פונקציה נוספת עם אותו השם שמציגה doing something else. אם אני כאן קורא ל-do something, איזה פונקציה מביניהם תהיה מוצגת? בואו נריץ ונראה מה יוצא מזה.

  28. 09:45

    אז אנחנו רואים שבעצם קיבלנו את התוכן של הפונקציה השנייה, כאילו שהפונקציה השנייה דרסה את הפונקציה הראשונה. מה יקרה אם הקריאה לפונקציה תהיה אחרי הפונקציה הראשונה ולפני הפונקציה השנייה?

לקורס המלא: קורס Javascript אונליין

ההרצאה הקודמת: לולאות ב-Javascript

ההרצאה הבאה: Chars

הרצאות קשורות מקורסים אחרים

  • פונקציות למתקדמים
  • פונקציות - Functions (חלק 1)
  • פונקציות - Functions
  • פונקציות Interpolator

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React
  • קורס NodeJS