Junior
Poți explica mai detaliat diferențele dintre null și undefined în JavaScript?
sobes.tech AI
Răspuns de la AI
-
undefined:- Se atribuie variabilelor declarate, dar neinițializate cu o valoare.
- Valoarea implicită pentru parametrii funcțiilor cărora nu li s-au transmis argumente.
- Se obține atunci când se încearcă accesarea unei proprietăți sau a unui element de matrice care nu există.
- Tip de date —
undefined.
-
null:- Este o valoare specială atribuită explicit unei variabile pentru a indica "absența valorii".
- Reprezintă absența intenționată a oricărui obiect sau valoare primitivă.
- Tip de date —
object(acesta este o eroare istorică în JavaScript, dar așa este).
Principalele diferențe din tabel:
| Caracteristică | undefined |
null |
|---|---|---|
| Origine | Implicit (implicit) | Explicit (atribuit de dezvoltator) |
| Scop | Declarat, dar fără valoare atribuită | Absența intenționată a valorii |
Tip de date (typeof) |
undefined |
object |
| Context boolean | false |
false |
Egalitate (==) |
null == undefined (adevărat) |
null == undefined (adevărat) |
Egalitate strictă (===) |
null === undefined (fals) |
null === undefined (fals) |
Exemplu:
let a; // Declarat, dar neinițializat -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Acces la o proprietate inexistentă -> undefined
function greet(name) {
console.log(name);
}
greet(); // Parametrul name nu a fost transmis -> undefined
let b = null; // A fost atribuit explicit null
console.log(b); // null
let c = {};
c.data = null; // Proprietății data i s-a atribuit null
console.log(c.data); // null
console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // true
console.log(null === undefined); // fals