Sobes.tech
Junior

JavaScript-də null və undefined arasındakı fərqləri daha ətraflı izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

  • undefined:

    • Təyin olunmamış, lakin elan edilmiş dəyişənlərə verilir.
    • Funksiya parametrləri üçün standart dəyərdir, arqumentlər ötürülmədikdə.
    • Mövcud olmayan obyekt xüsusiyyətinə və ya massiv elementinə giriş cəhdində alınır.
    • Məlumat tipi — undefined.
  • null:

    • Aydın şəkildə dəyişənə təyin olunan xüsusi dəyərdir və "dəyərin olmaması" ni göstərir.
    • İstənilən obyekt və ya primitiv dəyərin məqsədli olaraq olmamasını təmsil edir.
    • Məlumat tipi — object (bu, JavaScript-də tarixi səhvdir, amma belədir).

Əsas fərqlər cədvəldə:

Xüsusiyyət undefined null
Mənşə Qeyri-şüurlu (standart) Aydın (inkişafçı tərəfindən təyin olunub)
Məqsəd İlan edilmiş, lakin dəyər təyin olunmayıb Məqsədli olaraq dəyərin olmaması
Məlumat tipi (typeof) undefined object
Məntiqi kontekst false false
Bərabərlik (==) null == undefined (doğru) null == undefined (doğru)
Sərt bərabərlik (===) null === undefined (yanlış) null === undefined (yanlış)

Misal:

let a; // İlan olunub, amma başlanğıc dəyəri yoxdur -> undefined
console.log(a); // undefined

const obj = {};
console.log(obj.prop); // Mövcud olmayan xüsusiyyətə giriş -> undefined

function greet(name) {
  console.log(name);
}
greet(); // name parametri ötürülməyib -> undefined

let b = null; // Aydın şəkildə null təyin olunub
console.log(b); // null

let c = {};
c.data = null; // data xüsusiyyətinə null təyin olunub
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