PracticU

שפת JavaScript - בדיקת שוויון בין הנתונים

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

שפת JavaScript - בדיקת שוויון בין הנתונים
ב-JavaScript אפשר להשוות ערכים בשתי דרכים, וההשוואה הקלה יותר, שווה-שווה, עלולה להחזיר תשובות מפתיעות. השיעור מסביר מה ההבדל ולמה כדאי להשתמש בדרך השנייה.
ערכים שנחשבים false
1. שישה ערכים בלבד: 0, מחרוזת ריקה, false, null, undefined ו-NaN נחשבים false. כל ערך אחר נחשב true.
2. השוואה מופשטת (Abstract Comparison): == ממיר את הערכים לפני ההשוואה, ולכן 0 נחשב שווה ל-false, מחרוזת ריקה שווה ל-0, ו-null שווה ל-undefined. לפי המרצה, אלה מקורות לבאגים.
השוואה קפדנית (Strict Comparison)
1. בדיקת טיפוס קודם: === בודק קודם את הטיפוסים. אם הם שונים, התשובה היא false מיד.
2. בדיקת ערך: רק כששני הטיפוסים זהים משווים את הערך.
3. השוואה הפוכה: !== הוא ההפך מ-===.
שימו לב
1. המלצה: לפי השיעור, כמעט תמיד משתמשים ב-=== וב-!==, ולא בשווה-שווה.
מעכשיו אפשר להשוות ערכים בלי להיתקל בהמרות מפתיעות.
השיעור הבא בקורס: שפת JavaScript - אובייקט

פרקי ההרצאה: שפת JavaScript - בדיקת שוויון בין הנתונים

  1. 00:00

    השוואת ערכים בסיסית ב-JavaScript

  2. 01:09

    ערכים שנחשבים false בג'אווה סקריפט

  3. 02:08

    null, undefined ו-NaN כערכי false

  4. 03:13

    השוואה בעזרת == ובעיותיה

  5. 03:53

    השוואה בין אפס ל-false

  6. 04:30

    השוואה של מחרוזת ריקה, null ו-undefined

תמלול ההרצאה: שפת JavaScript - בדיקת שוויון בין הנתונים

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

  1. 00:02

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

  2. 00:21

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

  3. 01:06

    שלא הגיוני לרשום a equal to 10 בואו נרשום פה סתם תדפיס לי true ותדפיס לי false אז הוא ידפיס true למה הוא ידפיס true? מפני שיש כל מיני ערכים ששווים ל true וכל מיני ערכים ששווים ל false.

  4. 01:23

    למעשה יש שישה ערכים בלבד ששווים ל false כל היתר שווים ל true. אם אני רושם לדוגמה a שווה 0 אז אני רואה שהוא אומר לי false. אז זה נחשב ערך שהוא falsy או truthy כל דבר שאנחנו בודקים או שהוא פולסי או תרוסי.

  5. 01:44

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

  6. 02:08

    זה ערך הפולסי מספר 2. אם אנחנו נותנים מכרוזת ריקה מבחינת המערכת זה פולס זה ערך מספר 3 שהוא שווה לפולס.

  7. 02:21

    אם אנחנו נותנים null שזה בעצם אובייקט שלא מצביע על שום דבר או רפרנס שאין בו שום דבר מבחינת המערכת זה false גם undefined זה false בואו נסתכל ונראה שהוא false זה ערך מספר 5 ולבסוף הערך nan שזה קיצור של not a number גם הוא false.

  8. 02:58

    אוקיי, אחרי שהבנו שיש פה סדרת ערכים שהם false וכל ערך אחר נחשב כtrue, נניח אם אני רושם כאן סתם a,b,c, a,b,c כמובן יהיה true כי זה לא אחד מהערכים האלה.

  9. 03:15

    אז אנחנו צריכים עכשיו להסתכל על הקונספט של קומפריסון. בואו נניח שאני רוצה עכשיו לבדוק האם a שווה ל-b, בואו נעשה const log a שווה ל-b, יש לנו פה את קונסט A וקונסט A שווה לאפס ויש לנו פה את קונסט B וקונסט B שווה לפולס.

  10. 03:41

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

  11. 04:03

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

  12. 04:14

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

  13. 04:28

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

  14. 04:54

    הוא אומר לי כן, הם שווים, זה ממש לא. null

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: שפת JavaScript - טיפוסי נתונים - Types

ההרצאה הבאה: שפת JavaScript - אובייקט

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

  • מבוא ל-Javascript
  • בדיקת גבולות
  • Javascript in JavaSelenium
  • בדיקת תוכן ג'ייסון

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

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