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