ঐচ্ছিক পরিবর্তনকারী অপারেটরটি পাথের নিচে চলতে থাকবে যতক্ষণ না এটি একটি সম্পত্তির মান পৌঁছায় বা একটি ত্রুটিতে চলে যায়:
কর্মচারী যাক = {নামের প্রথম অংশ : 'জন' ,
নামের শেষাংশ : 'হরিণী' ,
বয়স : 3. 4
} ;
কনসোল লগ ( কর্মচারী ঠিকানা ? . জিপ ) ;
যদি আমরা ঐচ্ছিক চেইনিং অপারেটর ব্যবহার না করে একই সম্পত্তির মান অ্যাক্সেস করার চেষ্টা করতাম তাহলে আমরা একটি ত্রুটি পেতাম:
কর্মচারী যাক = {
নামের প্রথম অংশ : 'জন' ,
নামের শেষাংশ : 'হরিণী' ,
বয়স : 3. 4
} ;
কনসোল লগ ( কর্মচারী ঠিকানা . জিপ ) ;
মেথড কলে ঐচ্ছিক চেইনিং
ঐচ্ছিক চেইনিং পদ্ধতি কলেও কাজ করে। আপনি ঐচ্ছিক চেইনিং ব্যবহার করতে পারেন যখন আপনি নিশ্চিত নন যে একটি বস্তুর মধ্যে একটি পদ্ধতি বিদ্যমান কিনা। একটি উদাহরণ ব্যবহারের ক্ষেত্রে একটি API থেকে ডেটা আনা হয় যাতে ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে নির্দিষ্ট বৈশিষ্ট্য থাকতে পারে বা নাও থাকতে পারে:
কর্মচারী যাক = {
নামের প্রথম অংশ : 'জন' ,
নামের শেষাংশ : 'হরিণী' ,
বয়স : 3. 4
} ;
কনসোল লগ ( কর্মচারী পদ্ধতি ? . ( ) ) ;
ঐচ্ছিক চেইনিং ছাড়া:
কর্মচারী যাক = {
নামের প্রথম অংশ : 'জন' ,
নামের শেষাংশ : 'হরিণী' ,
বয়স : 3. 4
} ;
কনসোল লগ ( কর্মচারী পদ্ধতি ( ) ) ;
ঐচ্ছিক চেইনিং অপারেটরটি ত্রুটি এড়াতে একটি একক বিবৃতিতে একাধিকবার ব্যবহার করা যেতে পারে।
Nullish coalescing অপারেটরের সাথে ঐচ্ছিক চেইনিং একত্রিত করা
ঐচ্ছিক চেইনিং এর সাথেও পেয়ার করা যায়?? সম্পত্তি বা পদ্ধতিটি বিদ্যমান না থাকলে অপারেটর একটি ডিফল্ট মান প্রদান করবে:
কর্মচারী যাক = {নামের প্রথম অংশ : 'জন' ,
নামের শেষাংশ : 'হরিণী' ,
বয়স : 3. 4
} ;
কনসোল লগ ( কর্মচারী পদ্ধতি ? . ( ) ?? 'ফাংশন বিদ্যমান নেই' ) ;
ডিফল্ট মান কিছু ফাংশন কল হতে পারে.
ঐচ্ছিক চেইনিং অত্যধিক ব্যবহার
কোডের পঠনযোগ্যতা এবং কমনীয়তা বাড়াতে ঐচ্ছিক চেইনিং চালু করা হয়েছিল। এটি সাবধানে ব্যবহার করা উচিত কারণ এর ফলে ত্রুটিগুলি নীরব হতে পারে৷ ঐচ্ছিক চেইনিং অপারেটরের অত্যধিক ব্যবহার আপনার কোডে সমস্যা সৃষ্টি করতে পারে।
উপসংহার
ঐচ্ছিক চেইনিং হল জাভাস্ক্রিপ্টের একটি সাম্প্রতিক যোগ করা বৈশিষ্ট্য যা গভীর নেস্টেড জাভাস্ক্রিপ্ট অবজেক্টের মধ্যে বৈশিষ্ট্য এবং পদ্ধতিগুলি অ্যাক্সেস করতে ব্যবহার করা যেতে পারে সেই পদ্ধতি এবং বৈশিষ্ট্যগুলির অস্তিত্বের জন্য ম্যানুয়াল চেক করার বিষয়ে চিন্তা না করে।