Junior
Pouvez-vous expliquer plus en détail les différences entre null et undefined en JavaScript?
sobes.tech IA
Réponse de l'IA
-
undefined:- Attribué à des variables déclarées mais non initialisées.
- Valeur par défaut pour les paramètres de fonctions auxquels aucun argument n’a été passé.
- Obtenu en tentant d’accéder à une propriété ou un élément de tableau inexistant.
- Type de données —
undefined.
-
null:- Valeur spéciale attribuée explicitement à une variable pour indiquer "absence de valeur".
- Représente l’absence intentionnelle de tout objet ou valeur primitive.
- Type de données —
object(c’est une erreur historique en JavaScript, mais c’est comme ça).
Les principales différences dans le tableau :
| Caractéristique | undefined |
null |
|---|---|---|
| Origine | Implicite (par défaut) | Explicite (attribué par le développeur) |
| But | Déclaré, mais non assigné une valeur | Absence intentionnelle de valeur |
Type de données (typeof) |
undefined |
object |
| Contexte booléen | false |
false |
Égalité (==) |
null == undefined (true) |
null == undefined (true) |
Égalité (===) |
null === undefined (false) |
null === undefined (false) |
Exemple :
let a; // Déclarée, mais non initialisée -> undefined
console.log(a); // undefined
const obj = {};
console.log(obj.prop); // Accès à une propriété inexistante -> undefined
function greet(name) {
console.log(name);
}
greet(); // Paramètre name non passé -> undefined
let b = null; // Assigné explicitement null
console.log(b); // null
let c = {};
c.data = null; // La propriété data est assignée à 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); // false