আমি পরীক্ষা করছি if(response[0].title !== undefined), কিন্তু আমি ত্রুটি পেয়েছি:
আনকাচড টাইপ এরির: অপরিজ্ঞাতকৃত সম্পত্তি 'শিরোনাম' পড়তে পারে না।
আমি পরীক্ষা করছি if(response[0].title !== undefined), কিন্তু আমি ত্রুটি পেয়েছি:
আনকাচড টাইপ এরির: অপরিজ্ঞাতকৃত সম্পত্তি 'শিরোনাম' পড়তে পারে না।
উত্তর:
response[0] সংজ্ঞায়িত করা হয় না, এটি সংজ্ঞায়িত করা হয়েছে কিনা তা পরীক্ষা করে দেখুন এবং তার পরে তার সম্পত্তির শিরোনাম পরীক্ষা করুন।
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
undefinedনয় কারণ কোনও জাভাস্ক্রিপ্ট কীওয়ার্ড নয় (যদিও সবাই মনে হয় এটি এটি বলে মনে হয়)। আপনি যদি চান, আপনি একটি পরিবর্তনশীল নামে পরিচিত তৈরি করতে পারেন undefinedএবং তারপরে এই চেকটি ভুল হবে। একমাত্র সঠিক উপায় চেক করা হয় (typeof myVar !== 'undefined')।
undefined?
অপরিশোধিত কিনা response[0]তা খতিয়ে দেখুন:
if(response[0] !== undefined) { ... }
যদি এখনও আপনার শিরোনাম স্পষ্টভাবে পরীক্ষা করতে হয় তবে প্রাথমিক চেকের পরে এটি করুন:
if(response[0] !== undefined && response[0].title !== undefined){ ... }
উপরের অন্যান্য কোড উদাহরণগুলির সাথে আমার সমস্যা হয়েছিল। ক্রোমে, এই শর্তটি আমার জন্য কাজ করেছিল:
typeof possiblyUndefinedVariable !== "undefined"
আমাকে অন্যান্য ব্রাউজারগুলিতে এটি পরীক্ষা করে দেখতে হবে এবং কীভাবে জিনিসগুলি আমি অনুভব করি তা দেখতে হবে।
undefinedএকটি স্ট্রিং হতে হবে।
আসলে আপনার অবশ্যই এটিকে চেষ্টা / ক্যাপ ব্লক দিয়ে ঘিরে রাখা উচিত যাতে আপনার কোড কাজ করা থেকে বিরত না হয়। এটার মত:
try{
if(typeof response[0].title !== 'undefined') {
doSomething();
}
}catch(e){
console.log('responde[0].title is undefined');
}
ধরণ:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
এটি হবে কারণ response[0]নিজেই সংজ্ঞায়িত।
আপনাকে অবশ্যই প্রথমে response[0]অপরিশোধিত কিনা তা যাচাই করতে হবে এবং কেবল যদি তা না হয় তবে বাকিদের জন্য পরীক্ষা করে দেখুন। তার মানে আপনার ক্ষেত্রে response[0]এটি অপরিজ্ঞাত।
আমি জানি আমি এখানে 7 মাস দেরি করে এসেছি তবে আমি এই প্রশ্নগুলি পেয়েছি এবং এটি আকর্ষণীয় দেখাচ্ছে। আমি আমার ব্রাউজার কনসোলে এটি চেষ্টা করেছি।
try{x,true}catch(e){false}
যদি ভেরিয়েবল এক্স অপরিজ্ঞাত হয়, ত্রুটি ধরা পড়ে এবং এটি মিথ্যা হবে, যদি তা না হয় তবে এটি সত্য হয়ে যাবে। সুতরাং আপনি ভেরিয়েবলের মান সেট করতে আপনি ইভাল ফাংশনটি ব্যবহার করতে পারেন
var isxdefined = eval('try{x,true}catch(e){false}')
এই উত্তরের কয়েকটিতে কীভাবে ব্যবহার করবেন সে সম্পর্কে একটি মৌলিক ভুল ধারণা রয়েছে typeof।
ত্রুটিপূর্ণ
if (typeof myVar === undefined) {
ঠিক
if (typeof myVar === 'undefined') {
কারণটি typeofএকটি স্ট্রিংটি দেয় returns অতএব, আপনি চেক করা উচিত যে এটা STRING "undefined" বদলে ফিরে undefined(উদ্ধৃতি চিহ্নগুলির সাথে প্রদত্ত নয়), যা নিজেই এক জাভাস্ক্রিপ্ট এর আদিম ধরনের । typeofঅপারেটর ধরনের একটি মান আর ফেরত আসবে না undefined।
অভিযোজ্য বস্তু
আপনি যদি ভুল তুলনাটি ব্যবহার করেন তবে আপনার কোডটি প্রযুক্তিগতভাবে কাজ করতে পারে, তবে সম্ভবত আপনি ভাবেন এমন কারণে নয়। undefinedজাভাস্ক্রিপ্টে কোনও পূর্বনির্মাণের পরিবর্তনশীল নেই - এটি কোনও ধরণের যাদু কীওয়ার্ড নয় যা আপনি জিনিসগুলির সাথে তুলনা করতে পারেন। আপনি প্রকৃতপক্ষে একটি ভেরিয়েবল তৈরি করতে পারেন undefinedএবং এটি আপনার পছন্দ মতো কোনও মান দিতে পারেন।
let undefined = 42;
এবং প্রথম পদ্ধতিটি ভুল প্রমাণ করার জন্য আপনি কীভাবে এটি ব্যবহার করতে পারেন তার একটি উদাহরণ এখানে রয়েছে: