আমি মনে করি "মান হয় null
বা undefined
" এর পরীক্ষার সবচেয়ে কার্যকর উপায় হ'ল
if ( some_variable == null ){
// some_variable is either null or undefined
}
সুতরাং এই দুটি লাইন সমতুল্য:
if ( typeof(some_variable) !== "undefined" && some_variable !== null ) {}
if ( some_variable != null ) {}
নোট 1
প্রশ্নে উল্লিখিত হিসাবে, সংক্ষিপ্ত রূপটি some_variable
এটি ঘোষিত হয়েছে বলে ঘোষণা করা হয়েছে, অন্যথায় একটি রেফারেন্স এরির নিক্ষেপ করা হবে। তবে অনেকগুলি ব্যবহারের ক্ষেত্রে আপনি ধরে নিতে পারেন যে এটি নিরাপদ:
alচ্ছিক যুক্তি পরীক্ষা করুন:
function(foo){
if( foo == null ) {...}
একটি বিদ্যমান বস্তুর উপর বৈশিষ্ট্য পরীক্ষা করুন
if(my_obj.foo == null) {...}
অন্যদিকে typeof
অঘোষিত গ্লোবাল ভেরিয়েবলগুলি (কেবল রিটার্ন undefined
) ডিল করতে পারে । তবুও এই কারণগুলি ভাল কারণে ন্যূনতম করা উচিত, যেমন আলসিয়েঁয়ে ব্যাখ্যা করেছিলেন।
নোট 2
এটি - এমনকি ছোট - বৈকল্পিক সমতুল্য নয় :
if ( !some_variable ) {
// some_variable is either null, undefined, 0, NaN, false, or an empty string
}
সুতরাং
if ( some_variable ) {
// we don't get here if some_variable is null, undefined, 0, NaN, false, or ""
}
নোট 3
সাধারণত এটির ===
পরিবর্তে ব্যবহার করার পরামর্শ দেওয়া হয় ==
। প্রস্তাবিত সমাধান এই নিয়মের ব্যতিক্রম। JSHint সিনট্যাক্স পরীক্ষক এমনকি উপলব্ধ eqnull
এই কারণে বিকল্প।
থেকে jQuery এর শৈলী গাইড :
কঠোর সমতা চেক (===) == এর পক্ষে ব্যবহার করা উচিত। একমাত্র ব্যতিক্রম হ'ল নালার মাধ্যমে অপরিজ্ঞাত এবং নাল পরীক্ষা করার সময় checking
// Check for both undefined and null values, for some important reason.
undefOrNull == null;
if(some_variable) { ... }
যদি চালানো হবে নাsome_variable
হয়false
বা0
বা ...