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