برنامه‌نویسی

تفاوت null و undefined در جاوااسکریپت


۱۹ تیر ۱۳۹۹
تفاوت 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