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