Junior
Tudnál részletesebben beszélni a null és undefined közötti különbségekről JavaScriptben?
sobes.tech MI
Válasz az MI-től
-
undefined:- Olyan változóknak adódik, amelyek deklarálva vannak, de értéket nem kapnak.
- Alapértelmezett érték a függvényparaméterekhez, amelyekhez nem adtak argumentumot.
- Akkor keletkezik, amikor megpróbálunk hozzáférni egy nem létező objektum tulajdonsághoz vagy tömb elemhez.
- Adattípus —
undefined.
-
null:- Egy speciális érték, amelyet kifejezetten egy változóhoz rendelnek, hogy "érték hiányát" jelezzék.
- Szándékosan jelzi, hogy nincs objektum vagy primitív érték.
- Adattípus —
object(ez egy történelmi hiba JavaScriptben, de így van).
A fő különbségek a táblázatban:
| Jellemző | undefined |
null |
|---|---|---|
| Eredet | Rejtett (alapértelmezett) | Kifejezett (a fejlesztő által hozzárendelt) |
| Cél | Deklarált, de nincs érték hozzárendelve | Szándékos értéktelenség |
Adattípus (typeof) |
undefined |
object |
| Logikai kontextus | false |
false |
Egyenlőség (==) |
null == undefined (igaz) |
null == undefined (igaz) |
Szigorú egyenlőség (===) |
null === undefined (hamis) |
null === undefined (hamis) |
Példa:
let a; // Deklarálva, de nem inicializálva -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Hozzáférés nem létező tulajdonsághoz -> undefined
function greet(name) {
console.log(name);
}
greet(); // Nincs átadva a name paraméter -> undefined
let b = null; // Kifejezetten null értékhez rendelve
console.log(b); // null
let c = {};
c.data = null; // A data tulajdonság null értéket kapott
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