কম্পিউটার টিউটোরিয়াল

JavaScript-এ নাল কোলiscing অপারেটর (?? এবং ||) ব্যবহার

JavaScript-এ null বা undefined হলে ডিফল্ট মান সেট করার জন্য আধুনিক **Nullish Coalescing Operator** (`??`) এবং পার endeর thống **Logical OR** (`||`) ব্যবহার করা হয়।

সিনট্যাক্স

// পুরনো পদ্ধতি (Logical OR)
var value = null;
var result = value || "ডিফল্ট মান";

// আধুনিক পদ্ধতি (Nullish Coalescing - ES2020)
var result = value ?? "ডিফল্ট মান";

উদাহরণ

var fullName = null;
console.log("পূর্বে: " + fullName); // null

var actualName = fullName || "David Miller";
console.log("|| ব্যবহার: " + actualName); // David Miller

var actualName2 = fullName ?? "David Miller";
console.log("?? ব্যবহার: " + actualName2); // David Miller

চলানোর পদ্ধতি

  1. কোডটি nullishDemo.js নামে সংরক্ষণ করুন।
  2. টার্মিনালে চালান: node nullishDemo.js

আউটপুট

পূর্বে: null
|| ব্যবহার: David Miller
?? ব্যবহার: David Miller

|| vs ?? - গুরুত্বপূর্ণ পার্থক্য

মান|| ফলাফল?? ফলাফল
nullডিফল্টডিফল্ট
undefinedডিফল্টডিফল্ট
0ডিফল্ট ❌0 ✅
falseডিফল্ট ❌false ✅
""ডিফল্ট ❌"" ✅
NaNডিফল্টNaN ✅

কখন কোনটা ব্যবহার করবেন

  • || - যেকোনো falsy মানকে ডিফল্ট দিতে চাইলে (লিগ্যাসি কোড)।
  • ?? - শুধু null/undefined কে ডিফল্ট দিতে চাইলে (প্রস্তাবিত, সফ্টওয়্যার ইঞ্জিনিয়ারিং)।
  • ফাংশন প্যারামিটারে: `function(a = default)` (ES6 ডিফল্ট প্যারামিটার) সেরা।

চেইনিং (Chaining)

const config = userConfig ?? systemConfig ?? defaultConfig ?? 'fallback';

ব্রাউজার সাপোর্ট

  • `??`: Chrome 80+, Firefox 72+, Safari 13.1+, Edge 80+ (ES2020)
  • পুরনো ব্রাউজার সাপোর্টের জন্য Babel/TypeScript ট্রান্সপাইল করুন।
  1. জাভাস্ক্রিপ্ট স্প্রেড অপারেটর

  2. জাভাস্ক্রিপ্টে অবজেক্ট বা অ্যারেতে null ভ্যালু আছে কিনা যাচাই করা

  3. কোটলিনে ডাবল-ব্যাং (!!) অপারেটর কী?

  4. C#-এ Null Coalescing Operator (??) ব্যবহার করা