تفاوت null و undefined در جاوااسکریپت
۱۹ تیر ۱۳۹۹
ابتدا بیایید در مورد شباهتهای میان این دو صحبت کنیم. null و undefined، هر دو از انواع اساسی متغیرها هستند.
منظور از undefined این است که متغیری را تعریف کردهایم، اما مقداری را به ندادهایم، به عبارتی تنها آن را تعریف کردهایم.
let age
console.log(age)
// Output: undefined
let age = null
console.log(age)
// Output: null
به این نکته هم توجه داشته باشید که اگر بخواهید از متغیری که هنوز آن را تعریف نکردهاید استفادهای کنید، با خطای زیر روبرو خواهید شد:
Error: <variable> is not defined
اما این خطا به این معنا نیست که این متغیر undefined است.
چگونه بررسی میکنید که یک متغیر null است یا خیر؟ از عملگر مقایسهای استفاده کنید، برای مثال:
age === null
همچنین برای undefined:
age === undefined
در هر دو مورد میتوانید از راه زیر استفاده کنید:
if (!age) {
// ...
}
این روش هر دو مورد، یعنی هم null و هم undefined را شامل میشود.
همچنین میتوانید از عملگر typeof هم استفاده کنید:
let age
typeof age //’undefined’
null همارز یک object است، حتی با اینکه یکی از انواع اساسی متغیرهاست.
let age = null
typeof age //’object’
منبع: https://flaviocopes.com/javascript-difference-null-undefined