Skip to content

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;
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"
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"
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.