Sobes.tech
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