js Nullish Coalescing
در جاوااسکریپت، عملگر (??) Nullish Coalescing برای تعیین مقدار پیشفرض زمانی استفاده میشود که مقدار سمت چپ null یا undefined باشد.
این عملگر شبیه عملگر || است، اما تفاوت مهمی دارد که فقط در صورت null یا undefined بودن عمل میکند، نه هر مقدار falsy.
🔹 مثال ساده
const name = null;
const userName = name ?? "کاربر مهمان";
console.log(userName);
📌 خروجی:
کاربر مهمان
در این مثال، چون مقدار name برابر null است، مقدار "کاربر مهمان" جایگزین آن میشود.
🔹 تفاوت با عملگر OR (||)
عملگر || هر مقداری را که falsy باشد (مثل 0، ""، false، null، undefined) بررسی میکند،
اما ?? فقط برای null و undefined عمل میکند.
const count1 = 0 || 10;
const count2 = 0 ?? 10;
console.log(count1);
console.log(count2);
📌 خروجی:
10
0
✅ در ||، عدد صفر falsy است و مقدار 10 جایگزین میشود.
اما در ??، چون صفر null یا undefined نیست، همان 0 حفظ میشود.
🔹 استفاده در متغیرهای چندگانه
const a = null;
const b = undefined;
const c = "Hello";
const result = a ?? b ?? c;
console.log(result);
📌 خروجی:
Hello
عملگر ?? از چپ به راست حرکت میکند و اولین مقدار غیر null و غیر undefined را برمیگرداند.
🔹 ترکیب با Optional Chaining (?.)
این دو معمولاً با هم استفاده میشوند تا کد ایمن و خوانا باشد:
const user = {};
console.log(user.profile?.name ?? "نامشخص");
📌 خروجی:
نامشخص
در اینجا اگر user.profile وجود نداشته باشد یا name تعریف نشده باشد، مقدار "نامشخص" نمایش داده میشود.
✅ نکته:
-
عملگر
??فقطnullوundefinedرا چک میکند. -
برای مقادیر falsy مثل
0،falseیا""از||استفاده نکنید اگر میخواهید این مقادیر معتبر باقی بمانند. -
از نسخه ES2020 به بعد در تمام مرورگرهای مدرن پشتیبانی میشود.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React