JavaScript-da null va undefined o'rtasidagi farq

Malumot

JavaScript

Odatda nulldan foydalanish

Funktsiya parametri sifatida, bu funktsiya parametri ob'ekt emasligini anglatadi

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

Ob'ekt prototipi zanjirining oxiri sifatida

            Object.getPrototypeOf(Object.prototype);
        

O'zgaruvchini chiqarishda o'zgaruvchiga null qiymatini belgilang

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

Odatda aniqlanmagan foydalanish

O'zgaruvchi e'lon qilingan, ammo tayinlanmagan, o'zgaruvchining qiymati aniqlanmagan

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

Qo'ng'iroq qilishda funktsiya berishi kerak bo'lgan parametr ta'minlanmagan bo'lsa, u holda taqdim etilmagan parametr qiymati aniqlanmagan

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

Ob'ektda mavjud bo'lmagan xususiyatlar, qiymati aniqlanmagan

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

Agar funktsiya qiymatni qaytarmasa, u sukut bo'yicha aniqlanmagan qiymatni qaytaradi

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

Null va undefined o'rtasidagi o'xshashliklar

Booleanga aylantirilganda noto'g'ri

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

Null va undefined o'rtasidagi farq

Natija raqamga o'tkazilganda boshqacha bo'ladi, null konvertatsiya natijasi haqiqiy son qiymati 0, aniqlanmagan konvertatsiya natijasi esa NaN.

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

Ikkala tur har xil, null turi ob'ektiv va aniqlanmagan turi aniqlanmagan.

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

null va aniqlanmaganlarni taqqoslash

Nol va noaniqni farqlash uchun faqat muvofiqlikdan foydalanish mumkin, muvofiqlikda u ikkala tur tengligini qat'iy taqqoslaydi.

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

yakunlab, yakunida; qo'shmoq

Yuqoridagi taqqoslashdan so'ng biz ushbu ikki turni aniq tushunamiz. Odatda, kodni yozishda o'zgarmaydigan qiymat yaroqli yoki yo'qligini aniqlasak, ikkalasini ajratishning hojati yo'q, faqat uni mantiqiy turi sifatida ishlating. Ammo mulkning mavjudligini aniqlash kerak bo'lganda, biz aniqlanmagan hukm qilish uchun ushbu turdan qat'iy foydalanishimiz kerak. Va nihoyat, agar biz raqamli qiymatdan foydalansak, avval biz hukm chiqaramiz va to'g'ridan-to'g'ri raqamli turga o'tkazib bo'lmaydi, aks holda null bizni g'ayritabiiy natijalarga olib keladi va aniqlanmagan to'g'ridan-to'g'ri bekor qilingan natijani hisoblab chiqadi.