Sobes.tech
Junior

Kun je de verschillen tussen null en undefined in JavaScript in meer detail uitleggen?

sobes.tech AI

Antwoord van AI

  • undefined:

    • Wordt toegekend aan variabelen die zijn gedeclareerd, maar niet zijn geïnitialiseerd met een waarde.
    • Standaardwaarde voor functiedeclaraties waarvan geen argumenten zijn doorgegeven.
    • Wordt verkregen bij het proberen toegang te krijgen tot een niet-bestaande eigenschap van een object of element van een array.
    • Gegevenstype — undefined.
  • null:

    • Een speciaal gegeven dat expliciet aan een variabele wordt toegekend om "afwezigheid van waarde" aan te duiden.
    • Vertegenwoordigt de opzettelijke afwezigheid van elk object of primitieve waarde.
    • Gegevenstype — object (dit is een historische fout in JavaScript, maar zo is het).

De belangrijkste verschillen in de tabel:

Kenmerk undefined null
Oorsprong Impliciet (standaard) Expliciet (toegekend door de ontwikkelaar)
Doel Gedeclareerd, maar niet met waarde toegekend Opzettelijk ontbreken van waarde
Gegevenstype (typeof) undefined object
Booleaanse context false false
Gelijkheid (==) null == undefined (true) null == undefined (true)
Strikte gelijkheid (===) null === undefined (false) null === undefined (false)

Voorbeeld:

let a; // Gedeclareerd, maar niet geïnitialiseerd -> undefined
console.log(a); // undefined

const obj = {};
console.log(obj.prop); // Toegang tot niet-bestaande eigenschap -> undefined

function greet(name) {
  console.log(name);
}
greet(); // Parameter name niet doorgegeven -> undefined

let b = null; // Expliciet op null gezet
console.log(b); // null

let c = {};
c.data = null; // Eigenschap data op null gezet
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