مدیریت مقادیر 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
به این ترتیب به پایان این مقاله میرسیم.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای جاوا اسکریپت
- مجموعه آموزشهای برنامهنویسی
- آموزش جاوا اسکریپت (JavaScript)
- Null چیست ؟ — تهی در برنامه نویسی به زبان ساده
- ترفندهای کنسول جاوا اسکریپت — راهنمای کاربردی
- مقادیر NaN در جاوا اسکریپت — به زبان ساده
==