מה ההבדל בין Null ל- Undefined ב- JavaScript?

מה ההבדל בין Null ל- Undefined ב- JavaScript?

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





בנקאות מקוונת אינה זמינה עבורך בשלב זה בנק אמריקה

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





השוואת שוויון בין ערכים אפסיים ובלתי מוגדרים

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





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

השתמש במפעיל השוויון ( == ) כדי להשוות אם ריק ו לא מוגדר הערכים שווים ב- JavaScript.



פתח את מסוף הדפדפן והזן את הקוד הבא ולחץ על להיכנס.

null == undefined

הפלט אמור לתת לך משהו שנראה כך, הערך הבולאני המוחזר של נָכוֹן פשוט אומר ששני הערכים שווים.





למידע נוסף: כיצד להכריז על משתנים ב- JavaScript

השוואה קפדנית של שוויון

ל- JavaScript יש גם מפעיל זהות ( === ), הידוע גם כמפעיל השוויון הקפדני בנוסף למפעיל השוויון ( == )





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

כדי לבדוק שוויון קפדני, השתמש בסימן השוויון המשולש להלן.

null === undefined

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

לברר את סוג האפס והלא מוגדר

השתמש בפונקציית ה- JavaScript המובנית סוג של() כדי לברר את סוג הבסיס של ערך. הפונקציה לוקחת פרמטר יחיד של הערך שאת סוגו אתה רוצה למצוא.

קָשׁוּר: גיליון הרמאים של JavaScript

typeof(null)

ערך האפס הוא מסוג לְהִתְנַגֵד כפי שאתה יכול לראות מהפלט למטה.

הפעלת בדיקה דומה ב- לא מוגדר ערך ייתן לך תוצאה של לא מוגדר .

typeof(undefined)

עבודה עם מספרים

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

ישנן שתי דרכים עיקריות לבדוק אם ערך הוא מספר ב- JavaScript.

1. שימוש ב- isFinite () פונקציה - אם הערך הנבדק הוא מספר, הפונקציה חוזרת נָכוֹן ; אחרת זה חוזר שֶׁקֶר .

2. שימוש ב isNaN () פונקציה - אם הערך הנבדק הוא מספר, הוא חוזר שֶׁקֶר ; אחרת זה חוזר נָכוֹן .

הערה : isNaN קיצור של 'הוא לא מספר'.

כדי לשמור על דברים פשוטים, מדריך זה ישתמש רק ב- isFinite () פונקציה כדי לבדוק אם הערך הוא מספר, אך אל תהסס לנסות גם את isNaN () פוּנקצִיָה. שתי הפונקציות הללו לוקחות את הערך שברצונך להריץ את בדיקת המספרים כפרמטר.

isFinite(null)

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

isFinite(undefined)

הקלד כפייה

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

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

הפעל את הפעולה המספרית הבאה ריק ו לא מוגדר במסוף הדפדפן שלך.

1 + null 3 * null 1 + undefined 3 * undefined;

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

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

הימנעות מבאגים בזמן ריצה

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

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

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל נושאים קשורים
  • תִכנוּת
  • JavaScript
  • טיפים לקידוד
על הסופר מוכן ללכת(36 מאמרים פורסמו)

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

עוד מאת מוויזה קומוונדה

הירשם לניוזלטר שלנו

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

לחצו כאן להרשמה