জাভাস্ক্রিপ্টে নাল এবং অপরিজ্ঞাত মধ্যে পার্থক্য

রেফারেন্স

JavaScript

নাল এর সাধারণ ব্যবহার

একটি ফাংশন প্যারামিটার হিসাবে, এর অর্থ হল যে ফাংশন প্যারামিটার কোনও অবজেক্ট নয়

            function myFn(obj) {
    if(null == obj) {
        // code
    }
}
        

অবজেক্ট প্রোটোটাইপ চেইন শেষ হিসাবে

            Object.getPrototypeOf(Object.prototype);
        

ভেরিয়েবলটি মুক্ত করার সময়, ভেরিয়েবলটিকে নাল বরাদ্দ করুন

            let o={
 code:'abc'
};
o = null;
        

অপরিশোধিত এর সাধারণ ব্যবহার

ভেরিয়েবল ঘোষিত হলেও নির্ধারিত নয়, ভেরিয়েবলের মান নির্ধারিত হয়

            let o;
console.log(o);    //undefined
        

ফাংশনটি সরবরাহ করা উচিত যে পরামিতি কল করার সময় সরবরাহ করা হয় না, তারপরে প্যারামিটারের মান সরবরাহ করা হয় না

            function myFn(o) {
    console.log(o);
}
myFn();   //undefined
        

বৈশিষ্ট্য যা অবজেক্টটি ধারণ করে না, মানটি সংজ্ঞায়িত

            let o={
 code:'abc'
};
console.log(o.name);    //undefined
        

যখন ফাংশনটি কোনও মান ফেরত দেয় না, এটি ডিফল্টরূপে অপরিবর্তিত থাকে

            function myFn(obj) {
    obj = 'a';
}
console.log(myFn());    //undefined
        

নাল এবং অপরিজ্ঞাত মধ্যে মিল

বুলিয়ান রূপান্তরিত হলে মিথ্যা

            console.log(Boolean(null));  // false
console.log(Boolean(undefined)); // false
        

নাল এবং অপরিজ্ঞাত মধ্যে পার্থক্য

কোনও সংখ্যায় রূপান্তরিত করার সময় ফলাফলটি পৃথক। নাল রূপান্তরকরণের ফলাফলটি 0 এর একটি বৈধ সংখ্যা মান এবং অপরিবর্তিত রূপান্তরের ফলাফল NaN হয়।

            console.log(Number(null));  // 0
console.log(Number(undefined)); // NaN
        

দুটি প্রকারের ধরন পৃথক, নাল প্রকারের অবজেক্ট এবং অপরিজ্ঞাত প্রকারটি অপরিজ্ঞাত।

            console.log(typeof null); //object
console.log(typeof undefined); //undefined
        

নাল এবং অপরিজ্ঞাত তুলনা করুন

নাল এবং অপরিজ্ঞাত মধ্যে পার্থক্য করার জন্য, শুধুমাত্র একত্রিত হতে পারে cong একত্রিত করে, এটি দুটি প্রকারের সমান কিনা তা কঠোরভাবে তুলনা করবে।

            console.log(Boolean(null == undefined));  // true
console.log(Boolean(null === undefined)); // false
        

যোগফল

উপরের তুলনার পরে, আমাদের এই দুটি প্রকারের একটি স্পষ্ট ধারণা রয়েছে। সাধারণত যখন কোডটি লেখার সময় কোনও ভেরিয়েবলের একটি কার্যকর মান আছে কিনা তা আমরা বিচার করি তখন আমাদের দুজনের মধ্যে পার্থক্য করার প্রয়োজন হয় না, কেবল এটি বুলিয়ান টাইপ হিসাবে ব্যবহার করুন। কিন্তু যখন সম্পত্তিটি রয়েছে কিনা তা বিচার করার দরকার রয়েছে, আমাদের অবশ্যই টাইপটি কঠোরভাবে অবধারিত হিসাবে বিচার করতে হবে। অবশেষে, আমরা যদি একটি সংখ্যাসূচক মান পাস করি তবে অবশ্যই আমাদের প্রথমে রায় দিতে হবে, এবং সরাসরি একটি সংখ্যার ধরণের কাছে সরাসরি কাস্ট করা যাবে না, অন্যথায় নাল আমাদের অস্বাভাবিক ফলাফল পেতে বাধ্য করবে এবং অপরিবর্তিত সরাসরি অবৈধ ফলাফলের এনএএন গণনা করবে।