Junior
JavaScriptda null va undefined o'rtasidagi farqlarni batafsil tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
-
undefined:- O'zgaruvchilarga tayinlangan, ammo qiymati berilmagan holda belgilangan.
- Argumentlar o'tkazilmagan funksiyalar parametrlarining standart qiymati.
- Mavjud bo'lmagan ob'ekt xususiyati yoki massiv elementiga kirishga urinishda olinadi.
- Ma'lumot turi —
undefined.
-
null:- Aniq ravishda o'zgaruvchiga tayinlangan maxsus qiymat bo'lib, "qiymatning yo'qligini" bildiradi.
- Maqsadli ravishda har qanday ob'ekt yoki primitiv qiymatning yo'qligini ifodalaydi.
- Ma'lumot turi —
object(bu JavaScriptda tarixiy xato, lekin shunday).
Jadvaldagi asosiy farqlar:
| Xususiyat | undefined |
null |
|---|---|---|
| Kelib chiqishi | Noaniq (standart) | Aniq (dasturchi tomonidan tayinlangan) |
| Maqsad | E'lon qilingan, ammo qiymat berilmagan | Maqsadli ravishda qiymatning yo'qligi |
Ma'lumot turi (typeof) |
undefined |
object |
| Mantiqiy kontekst | false |
false |
Tenglik (==) |
null == undefined (haqiqat) |
null == undefined (haqiqat) |
Qattiq tenglik (===) |
null === undefined (noto'g'ri) |
null === undefined (noto'g'ri) |
Misol:
let a; // E'lon qilingan, ammo boshlang'ich qiymati yo'q -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Mavjud bo'lmagan xususiyatga kirish -> undefined
function greet(name) {
console.log(name);
}
greet(); // name parametri berilmagan -> undefined
let b = null; // Aniq null qiymati berilgan
console.log(b); // null
let c = {};
c.data = null; // data xususiyatiga null qiymati berilgan
console.log(c.data); // null
console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // true
console.log(null === undefined); // false