תלמידים רבים שלי, במיוחד הפחות מנוסים ביניהם, לא באמת מבדילים תמיד בין הערכים null, undefined ו empty בבואם לעבוד עם משתנים ב Java Script. אני רואה את זה בשאלות שלהם שחוזרות הרבה פעמים. במאמר זה אנסה לעשות סדר בנושא.
נתחיל עם null:
null פשוט מייצג ״כלום״ או ערך ״לא קיים״. ולמרות זאת, null הוא מסוג object ולא nothing.
מה זה undefined?
undefined זה פשוט משתנה שהוגדר אך טרם הוקצה לו ערך. גם אין לו data type.
מה לגבי empty?
empty מייצג מחרוזת ריקה. מבחינת data type זה כמובן נשאר string.
האם equal שווה ל undefined? לפני זה, צריך לזכור שב Java Script יש הבדל בין == ו ===
== בודק את השוויון בין ה
ערכים בעוד ש === בודק שהם גם מאותו הטיפוס.
בנוסף, אנו רואים ש null ו undefined אומנם ״זהים״ בכך שלשניהם אין ערך, אך מטיפוסים שונים.
אז מתי נשתמש ב null ומתי ב undefined?
נסתכל על דוגמה לבקשת Ajax מהשרת:
כאן, data יקבל את המידע שיגיע מהשרת. זה יכול להיות string,json וגם יכול להיות null וגם מחרוזת ריקה. כלומר, null הוא ערך לגיטימי ותקין, אך השרת חייב להחזיר משהו. הוא לא יכול להחזיר undefined. ולכן, אם המשתנה יהיה שונה מ undefined, זו תהיה אינדיקציה שמידע אכן חזר מהשרת.