Vivasoft-logo

8.21 Optional chaining and Nullish Coalescing Operator

 

Optional chaining

একটি উদাহরণ দিয়ে শুরু করা যাক।

 
 
 
let student = {
name: “Rifat”,
age: 10,
class: “9”,
roll: 2,
hometown: “Dhaka”,
};
 

 

আমরা যখনি একটি object এর কোন property/properties access করতে যাই তখন তাকে “.” symbol দ্বারা access করে একটি chain create করি।
যেমন : student.name বা student.age .
কিন্তু এই chain টি valid কিনা তা check করার জন্য Optional chaining use করে খুব সহজেই তা বের করে ফেলতে পারি /
আমরা এখন student.school কে access করতে যাই, তবে javascript আমাদের একটি undefined show করবে এবং বলবে যে, আমরা এই student নামক object টির school নামক যে property টি access করতে চাচ্ছি, তা student নামক object টির মাঝে নেই.
তাই একটি property কোন object এ belong করে কি না, এবং যদি সেই প্রপার্টি টি object এ belong করে তা Optional chaining এর মাধ্যমে check করে নিতে পারি।

 
 
 
// with Optional chaining
console.log(student?.address);
// without Optional chaining
console.log(student.address);
 

তবে main object এর ক্ষেত্রে এটি প্রযোজ্য নয়.
যেমন :studentXyz?.address কে access করতে চাইলে সে একটি ReferenceError দিবে।

একইভাবে array এর ক্ষেত্রেও আমরা array এর property এর validity check করতে পারি।
Example :

 
 
 
let numbers = [“1”, “2”];
console.log(numbers?.[2]);
 

Nullish coalescing operator

Nullish coalescing operator এমন একটি operator, যা left-hand side এ null কিংবা undefined থাকলে right-hand side কে return করে অন্যথায় সে তার left-hand side operand কে return করে।

 
 
 
const a = null;
console.log(a ?? “right”);
//output : right
let b = 10;
console.log(b ?? “left”);
//output : 10
 

 

  • let student = {
    id: 0,
    registration_no: 10102019,
    age: 7,
    class: “Standart 1”,
    Hometown: “Mymensingh”,
    };
     
    • উদাহরণ- ১
     
     
     
    console.log(student.registration_no); // 10102019
     
    • উদাহরণ- ২
     
     
     
    console.log(student?.registration_no); //10102019
     
    • উদাহরণ- ৩
     
     
     
    console.log(student?.age ?? “Humm…”); // 7
     
    • উদাহরণ- ৪
     
     
     
    console.log(student?.father ?? “Humm…”); //Humm..
     
    • উদাহরণ- ৫
     
     
     
    console.log(teacher?.has_pocket); //aa.js:13 Uncaught ReferenceError: teacher is not defined
  • let shirtData = {
    id: 0,
    product_id: “##321ssl”,
    size: “XL”,
    color: “red”,
    has_pocket: false,
    };
    console.log(shirtData.product_id);
    console.log(shirtData?.product_id);
    console.log(shirtData?.color);
    console.log(shirtData.has_button);
    console.log(shirtData?.has_button);
    console.log(shirtData?.has_button ?? “Humm…”);
    console.log(shirtData?.has_pocket ?? “Humm…”);
    console.log(shirt.has_pocket ?? “Humm…”);
    console.log(shirt?.has_pocket ?? “Humm…”);
  • উল্লিখিত কোডটির আউটপুটগুলো বের কর।