مدیریت مقادیر NULL و Undefined در جاوا اسکریپت — راهنمای کاربردی

۱۹۲ بازدید
آخرین به‌روزرسانی: ۰۷ شهریور ۱۴۰۲
زمان مطالعه: ۱ دقیقه
مدیریت مقادیر NULL و Undefined در جاوا اسکریپت — راهنمای کاربردی

استاندارد ECMAScript 2020 یک عملگر جدید برای مدیریت مقادیر NULL و Undefined در جاوا اسکریپت معرفی کرده است. عملگر «ادغام تهی» (null coalescing) با علامت ?? یک متغیر یا عبارت یا گزاره را گرفته و تلاش می‌کند از آن استفاده کند. در حالتی که این عبارت یا متغیر تهی یا تعریف نشده باشد، عملوند دوم که پس از ?? ظاهر می‌شود به عنوان گزینه جایگزین مورد استفاده قرار می‌گیرد.

مثال‌ کاربردی

در ادامه مثالی از انواع داده و شیوه ارزیابی آن‌ها با استفاده از عملگر ?? را می‌بینید.

1let a;
2let b = null;
3let c = "";
4let d = 0;
5let e = false;
6const t1 = a ?? "Default";  // "Default"
7const t2 = b ?? "Default";  // "Default"
8const t3 = c ?? "Default";  // ""
9const t4 = d ?? "Default";  // 0
10const t5 = e ?? "Default";  // false

عملگر ادغام تهی در برابر عملگر or منطقی

عملگر or منطقی (||) که همانند عملگر الویس (Elvis) عمل می‌کند برای تطبیق دادن دو مقدار مشابه عملگر ادغام تهی مورد استفاده قرار می‌گیرد. تفاوت در قواعدی است که در صورت استفاده از عملوند اول تعیین می‌شود.

عملگر or منطقی، عملوند اول را به صورت یک مقدار بولی کاهش می‌دهد و تنها زمانی از آن استفاده می‌کند که برابر با true ارزیابی شود. بدین ترتیب عدد صفر و همچنین رشته‌های خالی، اشیا و آرایه‌ها استثنا می‌شوند. عملگر ادغام تهی به طور خاص به دنبال مقدار تهی یا تعریف نشده در عملوند اول به عنوان الزامی برای مراجعه به عملوند دوم می‌گردد.

1let a = 0;
2let b = 7;
3// Logical Or Behavior
4console.log(a || b);  // 7
5// Null Coalescing Behavior
6console.log(a ?? b);  // 0

آن‌ها را می‌توانیم به صورت گزاره‌های عملگر سه‌تایی مشابه بنویسیم تا تفاوت را بهتر ببینیم:

1let a = 0;
2let b = 7;
3let logical_or = (a) ? a : b;
4console.log(logical_or); // 7
5let nc = (typeof a == "undefined" || a == null) ? b : a;
6console.log(nc);    // 0

به این ترتیب به پایان این مقاله می‌رسیم.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
better-programming
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *