নাল এবং অনির্ধারিত

জাভাস্ক্রিপ্টে একটি মানের অনুপস্থিতি নির্দেশ করার একাধিক উপায় রয়েছে। এই পৃষ্ঠাটি দুটি সর্বাধিক সাধারণ উপায় বর্ণনা করে: null এবং undefined ডেটা প্রকার।

null কীওয়ার্ডটি ইচ্ছাকৃতভাবে সংজ্ঞায়িত মানের অনুপস্থিতির প্রতিনিধিত্ব করে। null একটি আদিম, যদিও অপারেটর typeof দেয় যে null একটি বস্তু। এটি একটি ত্রুটি যা জাভাস্ক্রিপ্টের প্রথম সংস্করণ থেকে চলে এসেছে এবং ওয়েব জুড়ে প্রত্যাশিত আচরণ ভাঙা এড়াতে ইচ্ছাকৃতভাবে এড্রেস করা হয়নি।

typeof null
> object

আপনি একটি ভেরিয়েবলকে null হিসাবে সংজ্ঞায়িত করতে পারেন এই প্রত্যাশার সাথে যে এটি একটি স্ক্রিপ্টের কোনও সময়ে এটিতে নির্ধারিত মান বা স্পষ্টভাবে অনুপস্থিত মান প্রতিফলিত করে। আপনি পূর্ববর্তী মান মুছে ফেলার জন্য একটি বিদ্যমান রেফারেন্সে null মান নির্ধারণ করতে পারেন।

undefined

undefined হল একটি আদিম মান যা সবেমাত্র ঘোষিত ভেরিয়েবলের জন্য বা এমন একটি অপারেশনের ফলস্বরূপ মান যা একটি অর্থপূর্ণ মান প্রদান করে না। উদাহরণস্বরূপ, এটি ঘটতে পারে যখন আপনি একটি ব্রাউজারের বিকাশকারী কনসোলে একটি ফাংশন ঘোষণা করেন:

function myFunction() {}
> undefined

একটি ফাংশন স্পষ্টভাবে undefined রিটার্ন করে যখন তার return স্টেটমেন্ট কোন মান প্রদান করে না।

(function() {
    return;
}());
> undefined

null এবং undefined তুলনা

যদিও undefined এবং null কিছু কার্যকরী ওভারল্যাপ আছে, তাদের ভিন্ন উদ্দেশ্য আছে। কঠোর অর্থে, null ইচ্ছাকৃতভাবে "খালি" হিসাবে সংজ্ঞায়িত একটি মানকে উপস্থাপন করে এবং undefined কোনও নির্ধারিত মানটির অভাবকে উপস্থাপন করে।

null এবং undefined শিথিলভাবে সমান, কিন্তু কঠোরভাবে সমান নয় । ঢিলেঢালা সমতা অপারেটর বিভিন্ন ধরনের অপারেন্ডগুলিকে বুলিয়ান মানগুলিতে বাধ্য করে, যা null এবং undefined উভয়কেই false করে। কঠোর সমতা অপারেটর বিভিন্ন ডেটা প্রকারের অপারেন্ডগুলিকে অসম বলে বিবেচনা করে।

null == undefined
> true

null === undefined
> false

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

আপনার উপলব্ধি পরীক্ষা করুন

typeof null কি?

undefined
object
primitive
string