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