PracticU

פונקציות כלליות ב-Javascript

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

פונקציות כלליות ב-Javascript
ל-JavaScript יש מאפיינים ופונקציות גלובליים, שזמינים בכל מקום בלי לכתוב לפניהם שם של אובייקט. השיעור עובר עליהם, ומסביר בעיקר את קידוד הכתובות ואת ההמרות בין סוגי נתונים.
השלבים העיקריים
1. NaN: מייצג ערך שאמור להיות מספר, אבל אינו מספר. למשל, Math.round על ערך לא מספרי מחזיר NaN.
2. Infinity: מייצג אינסוף, למשל תוצאה של חלוקה ב-0. אפשר לבדוק אם ערך שווה לו.
3. undefined: מציין משתנה שלא קיבל ערך, או פרמטר שלא נשלח לפונקציה.
4. קידוד כתובות: כתובת שמכילה סימני שאלה, אמפרסנד או שווה עלולה לבלבל את הדפדפן כשהיא נשלחת כפרמטר. encodeURI מקודד את רוב התווים, אבל משאיר בלי קידוד את הסימנים האלה, ולכן מתאים לכתובת שלמה. רווח הופך ל-%20.
5. encodeURIComponent: מקודד גם את הסימנים האלה, ולכן מתאים לערך שנשלח כפרמטר. מפענחים בחזרה עם decodeURI או decodeURIComponent, בהתאם לקידוד.
6. escape ו-unescape: פונקציות ישנות יותר שעושות קידוד דומה.
7. המרות: String הופך ערך למחרוזת, ו-Number הופך ערך למספר. parseInt ו-parseFloat מחזירים מספר שלם או עשרוני ממחרוזת.
8. חיבור לעומת שרשור: שני ערכים שהם מחרוזות של מספרים מתחברים כשרשור. כדי לחבר אותם כמספרים, עוטפים אותם ב-parseInt או ב-parseFloat.
9. isFinite ו-isNaN: isFinite בודק שהערך הוא מספר סופי, ו-isNaN מחזיר true אם הערך אינו מספר.
10. eval: מקבל מחרוזת שמכילה קוד JavaScript ומריץ אותה. זה שימושי כשהשרת מחזיר קוד בתוך מחרוזת, למשל בטכנולוגיית AJAX.
שימו לב
encodeURI לא מקודד סימני שאלה ואמפרסנד, ולכן לכתובת שנשלחת כערך של פרמטר צריך את encodeURIComponent.
השיעור מסתיים ביכולת לזהות NaN ו-undefined, לקודד כתובת לפני שליחה ולהמיר בין מחרוזת למספר.
השיעור הבא בקורס: אובייקט Screen
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
Java - שפת תכנות עילית ומונחית עצמים, הרצה על מכונה וירטואלית (JVM) ומשמשת לפיתוח מגוון יישומים.

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

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

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

  1. 00:00

    מאפיינים גלובאליים ב-JavaScript

  2. 00:37

    המאפיין NaN

  3. 01:32

    הערך Infinity

  4. 02:51

    המאפיין undefined

  5. 04:43

    קידוד ופענוח כתובות

  6. 07:40

    הפונקציה encodeURI

  7. 12:39

    הפונקציה encodeURIComponent

  8. 13:38

    escape ו-unescape

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

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

  1. 00:01

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

  2. 00:10

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

  3. 00:22

    אז ראשית מה שאנחנו נראה זה Global Properties ששייכים לג'אווה סקריפט. הפרופרטי הראשון שאנחנו הולכים לראות נקרא nan זה בעצם קיצור של not a number.

  4. 00:37

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

  5. 00:52

    נניח שאנחנו הולכים לפונקציה math.round ואנחנו רוצים לבצע עיגול של איזשהו משתנה var x אבל בתוך המשתנה הזה יש ערך שהוא לא מספרי. פונקציית ראונד תחזיר אז למעשה מה שאנחנו יכולים לראות זה שפונקציית ראונד הולכת להחזיר את אותו ערך שנקרא n-a-n ו-n-a-n שווה ל-not a number זאת

  6. 01:27

    אומרת שראונד הייתה אמורה לקבל מספר ולבצע עליו איזושהי פעולת עיגול אבל לא הבאנו לה מספר הבאנו לה ערך שהוא לא מספרי ולכן היא מחזירה not a number. דבר הבא שאנחנו יכולים לראות זה ערך שמציין בעצם אינסוף אם יש לי איזשהו משתנה ואנחנו מחלקים אותו באפס מה ערכו של y בואו נראה את זה אז ערכו של y הוא infinite או infinity אם בעצם אנחנו מבצעים

  7. 02:10

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

  8. 02:53

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

  9. 03:39

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

  10. 04:26

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

  11. 04:45

    בואו נראה את ה-Global Functions. ראשית, אנחנו נתחיל עם פונקציות שמבצעות משהו שנקרא Decoding ו-Encoding. אז מה היא בעצם המטרה?

  12. 05:03

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

  13. 05:21

    הבעיה היא, כאשר אנחנו מתעסקים עם לינקים, אז הלינק נראה בפורמט הבא. בוא נניח שיש לי איזשהו אתר, http://mysite.com. האתר הזה מכיל איזשהו דף, mypages.htm ואני רוצה אבל להעביר לו פרמטרים.

  14. 05:40

    איך אנחנו מעבירים פרמטרים? אנחנו מגדירים סימן שאלה וזה בעצם מפריד בין טובת ה-url של הדף לבין הפרמטרים שאנחנו מעבירים. ואז אנחנו רוצים להעביר את הפרמטרים, הפרמטרים מגיעים בזוגות זוגות של שם שווה ערך.

  15. 05:58

    לדוגמה first name שווה מוישה ואז אנחנו רוצים עוד פרמטר אז אנחנו מגדירים ampersand age שווה 30 אבל מה קורה אם הפרמטר עצמו הוא בעצם כתובת url לדוגמה my best page או my best link שווה ואני רוצה להעביר את הלינק שהלינק הוא http://mysecondsite.com וכמובן גם עוד משתנים לדוגמה your name שווה חיים וכולי וכולי אז עכשיו יש לנו פה

  16. 06:51

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

  17. 07:20

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

  18. 07:35

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

  19. 07:51

    אז ישנן כמה פונקציות. פונקציה ראשונה נקראת encode URI. כאשר URI זה מקרה כללי יותר של URL. URI זה קיצור של Universal Resource Identifier ו-URL זה Universal Resource Locator.

  20. 08:10

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

  21. 08:21

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

  22. 08:59

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

  23. 09:27

    נגדיר שזה name. כעת אנחנו כן רואים שהפונקציה עבדה על space והגדירה ש-space זה אחוז 2.0. הסיבה היא מפני ש-2.0 זה ב-unicode 32, ו-32 זה התו של סליחה ליתר דיוק אמפרסנט 20 זה בהקסה 32 ו-32 זה היוניקוד של ספייס.

  24. 10:04

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

  25. 10:40

    פונקציה נוספת שקיימת שמאפשרת בעצם לפענח את מה ש-Encode עשתה זה Decode URI. אז בואו נפתח פה איזשהו משתנה var, נקרא לו str1 ונכניס את מה שחוזר מ-Encode URI.

  26. 11:03

    נציג את str1. לאחר מכן ניקח var str2 ונקרא ל-Decode URI, נשלח לה את str1 ואנחנו הולכים לראות בעצם ש-Decode URI הולכת להחזיר לנו בחזרה את המחרוזת.

  27. 11:31

    אנחנו רואים את המחרוזת המקודדת ואנחנו רואים שהמערכת החזירה לנו אותה בחזרה ככה אנחנו יכולים בעצם לקודד מחרוזת לשלוח אותה לדף יעד בלי שהיא תעשה צרות ובדף היעד להחזיר אותה בחזרה לערך המקורי שלה אם אנחנו משתמשים ב-Encode URI אנחנו צריכים להשתמש בחזרה ב-Decode URI אבל Encode URI לא

  28. 11:57

    מקודדת תווים שהם פסיק סלאש סימן שאלה נקודותיים סימן העט אמפרסנט שווה פלוס דולר סולמית אלה תווים שהיא לא מקודדת אם אנחנו לא צריכים להתעסק עם התווים האלה encode URI מתאימה לנו אם אנחנו כן צריכים להתעסק איתם אז כדאי לנו להשתמש בפונקציה אולי אחרת בואו ניקח str3 str4 והפונקציה הנוספת

  29. 12:37

    שקיימת encode URI component component מבצעת בדיוק את אותו הדבר אבל כן מקודדת את התווים שהגדרנו פה למעלה בשביל לפענח אותה אנחנו צריכים להשתמש ב-decode URI Component אז כעת בעצם אנחנו רואים את אותו הדבר אבל התווים שקודדו הם כן סימן שאלה אמפרסנט או כל דבר אחר שיכל להיות לנו שם בואו

  30. 13:27

    נסתכל שוב פעם ונראה מה קרה לתווים באנגלית תווים באנגלית אנחנו רואים שבעצם לא קרה איתם שום דבר פונקציה נוספת שמבצעת פחות או יותר את אותו הדבר קצת יותר חדישה ונהוג יותר להשתמש איתה זה פונקציית escape ו-un-escape.

  31. 13:47

    הן בעצם מבצעות מה ש-Encode URI מבצעת ו-Decode URI מבצעת. בואו נגדיר כאן str5 ו-str6 ונשתמש ב-escape ובשביל לבצע את הכידוד ההפוך un-escape.

  32. 14:26

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

  33. 14:50

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

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

ההרצאה הקודמת: אובייקט מסוג מספר- Number

ההרצאה הבאה: אובייקט Screen

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

  • הגדרות כלליות במכשיר - Globalization
  • פונקציות למתקדמים
  • פונקציות - Functions (חלק 1)
  • פונקציות - Functions

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

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