Opérateurs intermédiaires
Coalescence nulle
L'opérateur de coalescence nulle, ou en anglais "Nullish coalescing", permet de différencier avec certitude les valeurs nullish des valeurs falsy. En JavaScript, de nombreuses valeurs sont falsy. Par exemple, les chaînes vides ""
, le nombre 0
, undefined
, null
, false
, NaN
, etc. sont tous interprétés comme étant équivalent à false
dans le cadre d'une condition.
Cet opérateur est particulièrement utile pour définir des valeurs par défaut.
Par exemple:
let user;
user ?? "Anonyme"; // Retourne "Anonyme", car user n'est pas définit
tandis que:
let user = "Nikki";
user ?? "Anonyme"; // Retourne "Nikki", car user est définit
Différence avec le ou logique
Les code précédent ☝️ est régulièrement écrit avec un l'opérateur logique ou (||). Cependant, cet opérateur ne différencie pas les valeurs falsy, ce qui peut générer des enjeux.
Par exemple:
let counter = 0;
console.log(counter ?? "Aucune valeur de définit"); // Retourne 0
Tandis que le même code avec un opérateur logique ou (||):
let counter = 0;
console.log(counter || "Aucune valeur de définit"); // Retourne "Aucune valeur de définit"
Car counter
est interprété comme étant falsy.
Chaînage optionnel
L'opérateur de chaînage optionnel (?.) valide l'existence d'un élément avant d'accéder à la commande suivante après le point (.).
Par exemple, imaginons que l'objet suivant est disponible dans les exemples de codes suivant:
let user = {
name: "Nikki"
};
Il est possible d'accéder à la propriété name
"Nikki" via l'appel suivant:
user.name; // Retourne "Nikki"
Tout comme avec l'opérateur de chaînage optionnel:
user?.name; // Retourne aussi "Nikki"