JavaScript-da null va undefined o'rtasidagi farq
Malumot
JavaScriptOdatda 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.