আমরা একটি জাভাস্ক্রিপ্ট অবজেক্টে কোনো নির্দিষ্ট কী আছে কিনা চেক করার সঠিক পদ্ধতি ব্যাখ্যা করব। সেটির আগে একটি ভুল পদ্ধতি দেখি এবং কেন সেটি ভুল সেটাও বুঝব।
পদ্ধতি ১: undefined ভ্যালু চেক করা (ভুল পদ্ধতি)
জাভাস্ক্রিপ্টের পরিবর্তনশীল স্বভাবের কারণে, আমরা অবজেক্টে কী আছে কিনা চেক করতে পারি এইভাবে:
const obj = { name: 'Rahul' };
if(!obj['fName']){}
অথবা
if(obj['fName'] === undefined){}
এই দুটোই ভুল পদ্ধতি। কেন?
কারণ এই কেসে 'fName' কী নেই, কিন্তু ধরা যাক 'fName' কী থাকলেও সেটি ইচ্ছাকৃতভাবে false বা undefined সেট করা হয়েছে।
আমাদের ফাংশনটি বলে দিতে পারত যে কীটি নেই, কিন্তু আসলে সেটি ছিল। তাই এই পদ্ধতিতে ব্যর্থতা হয়।
পদ্ধতি ২ - in অপারেটর ব্যবহার করা (সঠিক পদ্ধতি)
in কীওয়ার্ড ES6-এ শুরুর করা হয়েছে যেটি একটি ইটरेবলে এন্ট্রি চেক করে। তাই কীর অস্তিত্ব চেক করতে পারি এইভাবে:
('fName' in obj);
পদ্ধতি ৩ - hasOwnProperty() মেথড ব্যবহার করা (সঠিক পদ্ধতি)
Object.prototype.hasOwnProperty() মেথড ব্যবহার করে আমরা নির্ধারণ করতে পারি কোনো অবজেক্টে কী আছে কিনা।
এর সিনট্যাক্স:
obj.hasOwnProperty('fName');
পদ্ধতি ২ এবং ৩-এর পার্থক্য হলো পদ্ধতি ৩ শুধু সেই অবজেক্ট ইনস্ট্যান্সের প্রপার্টি চেক করে যেটিতে কল করা হয়েছে, যেখানে 'in' অবজেক্ট ইনস্ট্যান্স প্রপার্টির পাশাপাশি ইনহেরিট করা প্রপার্টিও চেক করে (যদি থাকে)।