Appearance
Opérateur Nullish
L'opérateur Nullish Coalescing (??
) est une fonctionnalité introduite dans JavaScript avec ES2020. Il sert à fournir une valeur par défaut pour une expression qui évalue à null
ou undefined
. Cet opérateur est utile pour gérer des cas où des valeurs peuvent être manquantes ou non définies, sans traiter d'autres valeurs fausses (falsy) comme 0 ou une chaîne vide (""
) comme null
ou undefined
.
Syntaxe
L'opérateur Nullish Coalescing se compose de deux points d'interrogation ??
.
javascript
let resultat = expression ?? valeurParDefaut;
Dans cet exemple, resultat
recevra la valeur de expression
si elle n'est ni null
ni undefined
. Si expression
est null
ou undefined
, resultat
recevra valeurParDefaut
.
Exemple d'Utilisation
Supposons que vous ayez une fonction qui reçoit un objet pouvant contenir une propriété, mais cette propriété peut ne pas être présente (ou être undefined
).
javascript
function afficherMessage(message) {
// Si message.texte est null ou undefined, utilisez "Pas de message"
let texte = message.texte ?? "Pas de message";
console.log(texte);
}
afficherMessage({ texte: "Bonjour !" }); // Affiche "Bonjour !"
afficherMessage({ texte: "" }); // Affiche "", car la chaîne vide n'est ni null ni undefined
afficherMessage({ texte: null }); // Affiche "Pas de message"
afficherMessage({}); // Affiche "Pas de message"
Différence avec l'Opérateur OR (||
)
L'opérateur Nullish Coalescing est similaire à l'opérateur OR (||
), mais il ne considère que null
et undefined
comme des valeurs permettant de passer à la valeur suivante. En revanche, l'opérateur OR considère toutes les valeurs fausses (comme 0, ""
, false
, NaN
) comme des déclencheurs pour utiliser la valeur par défaut.
javascript
let faux = 0;
console.log(faux ?? "valeur par défaut"); // Affiche 0
console.log(faux || "valeur par défaut"); // Affiche "valeur par défaut"
Utilisation
L'opérateur Nullish Coalescing est très utile pour assigner des valeurs par défaut de manière plus précise et explicite, évitant ainsi les pièges des valeurs fausses qui ne sont pas nécessairement équivalentes à null
ou undefined
. Cela le rend particulièrement utile dans les paramètres de configuration, les options facultatives et d'autres scénarios où les valeurs peuvent être intentionnellement fausses mais définies.