چه تفاوتی بین Null و Undefined در Javascript وجود دارد؟

دسته بندی: آموزش
زمان مطالعه: 2 دقیقه
۱۷ تیر ۱۳۹۷

چه تفاوتی بین Null و Undefined در Javascript وجود دارد؟

در این مطلب قصد داریم تفاوت بین null و undefined رو در Javascript مورد بررسی قرار بدیم و ببینیم که چه کاربردی دارن و چطور تصمیم بگیریم که از کدوم یکی از اونا استفاده کنیم.

در واقع استفاده از null به این معنی هست که شما متغیرتون رو مقداردهی کردید اما به اون مقدار تهی رو دادید اما undefined به این معنا هست که شما فعلا مقداری به متغیرتون نسبت ندادید اما این امکان وجود داره که در هر جای کدنویسی به متغیر مقدار جدیدی رو نسبت بدید.

در واقع در undefined متغیر تعریف شده اما هنوز مقدار دهی نشده. در کد زیر متغیر TestVar تعریف شده اما مقدار خاصی به آن تخصیص داده نشده. بنابراین در هر جای برنامه که متغیر TestVar فراخوانی بشه با پیغام undefined مواجه می‌شید.

var TestVar;
alert(TestVar); //shows undefined
alert(typeof TestVar); //shows undefined

اما null خودش یک مقدار برای متغیر به شمار میاد. در واقع شما با استفاده از null مقدار تهی رو به متغیر اختصاص می‌دید.

var TestVar = null;
alert(TestVar); //shows null
alert(typeof TestVar); //shows object

با توجه به مثال‌های بالا میشه متوجه شد که null و undefined دارای type‌های متفاوتی هستن. Undefined خودش یک type به شمار میاد ولی null یک object هست و خودش نوع مخصوص و جداگانه نیست.

در آخر برای تکمیل مطالب فوق به کدهای زیر توجه کنید:

null === undefined // false
null == undefined // true
null === null // true

همونطور که میبینید زمانی که از == استفاده میکنید چون بصورت ضمنی تغییر نوع صورت میگیره، هر دو به false تبدیل میشن و در نتیجه با هم برابر میشن و true برگشت داده میشه. اما وقتی از === استفاده میشه دیگه تغییر نوع یا Type صورت نمیگیره و به خاطر همین نتیجه false خواهد بود.

به همین راحتی.

پس از این به بعد با توجه به توضیحات بالا از مقدار مناسب استفاده کنید.

چه امتیازی به این مقاله می دید؟
نویسنده محمد اسفندیاری
بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.
ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 

نظرات کاربران

amin

mammon az tozihetun