اتصال کوتاه (Short Circuiting) با عملگر منطقی Nullish coalescing (??) در جاوااسکریپت

این عملگر (نالیش کُولِسینگ) که به صورت دو علامت سوال کنار هم ?? هست، وقتی بین دو مقدار قرار بگیره، اولین مقداری رو برمی‌گردونه که null یا undefined نباشه. در مقایسه با عملگر Logical OR، برای این عملگر فقط null یا undefined بودن مقدارها مهم هست، نه falsy بودن اونها:

0         ?? &quotHello&quot  // 0
false     ?? &quotHello&quot  // false
&quot&quot        ?? &quotHello&quot  // &quot&quot

null      ?? &quotHello&quot  // &quotHello&quot
undefined ?? &quotHello&quot  // &quotHello&quot

برای سه مورد اول، اگه از عملگر Logical OR استفاده می‌کردیم، مقدارهای سمت راست درنظر گرفته می‌شد.


عملگر Logical Nullish Assignment

این عملگر به شکل ??= هست و برای نسبت‌دادن مقدار به یک متغیر استفاده میشه.

اگر کدی داریم به صورت زیر:

let x = null;

if (x === null || x === undefined) {
  x = 12;
}

می‌تونیم اون رو به این صورت بنویسیم:

let x = null;

 x ??= 12;

alert(x); // 12

کد بالا تنها زمانی مقدار 12 رو به x نسبت میده که x یک مقدار nullish باشه (یعنی null یا undefined). به بیان کلی‌تر، عملیاتِ نسبت دادن به عبارت سمت چپ زمانی انجام می‌گیره که عبارت سمت چپ null یا undefined باشه.




Resources:

babeljs.io

developer.mozilla.org

developer.mozilla.org

developer.mozilla.org

developer.mozilla.org