Combiner ?. et ??
Associez l’accès sécurisé à des valeurs par défaut pertinentes.
Combiner ?. et ?? est une leçon JavaScript Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage JavaScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours JavaScript Academy comprend 4 leçons au total.
Deux outils ensemble
L’enchaînement optionnel ?. permet de lire en toute sécurité des valeurs potentiellement absentes, tandis que la coalescence nulle ?? fournit une valeur par défaut. Ensemble, ils permettent de lire des données profondément imbriquées et de gérer proprement les valeurs manquantes.
const user = {};
console.log(user.profile?.name ?? "Anonymous");Le modèle courant
La construction a?.b ?? fallback lit une valeur en toute sécurité et utilise une valeur par défaut si le résultat est nul ou indéfini. Elle remplace les longues chaînes de vérifications.
const data = { settings: { theme: "dark" } };
const theme = data.settings?.theme ?? "light";
console.log(theme); // "dark"Utiliser une solution de repli en cas d’absence
Si un maillon quelconque vaut null ou undefined, ?. produit undefined, que ?? remplace ensuite par la valeur par défaut.
const data = {};
const theme = data.settings?.theme ?? "light";
console.log(theme); // "light"Imbrication profonde
Cette construction s’adapte aux structures profondément imbriquées tout en conservant une seule solution de repli à la fin.
const res = { data: { user: { city: "Berlin" } } };
const city = res.data?.user?.city ?? "Unknown";
console.log(city); // "Berlin"Conserver les valeurs fausses valides
Comme ?? ne fournit une valeur par défaut que pour les valeurs nulles ou indéfinies, les véritables valeurs 0 obtenues dans la chaîne sont conservées.
const cart = { items: [], count: 0 };
const count = cart?.count ?? 5;
console.log(count); // 0Le piège de && / ||
Écrire a && a.b || fallback remplacerait à tort une valeur 0 ou "" pourtant valide. La combinaison ?. + ?? évite ce problème.
const cfg = { volume: 0 };
console.log(cfg && cfg.volume || 50); // 50, wrong
console.log(cfg?.volume ?? 50); // 0, correctAvec les résultats de fonctions
Vous pouvez également fournir une valeur par défaut au résultat d’un appel optionnel, en combinant les deux opérateurs autour de l’invocation d’une méthode.
const api = { fetchName: () => null };
const name = api.fetchName?.() ?? "default";
console.log(name); // "default"Accéder aux éléments d’un tableau avec une valeur par défaut
Cette construction fonctionne avec l’accès entre crochets pour les tableaux ou les clés dynamiques.
const state = { list: ["a"] };
const first = state.list?.[0] ?? "empty";
console.log(first); // "a"Construire des chaînes d’affichage
Une utilisation pratique consiste à produire un texte d’affichage sûr à partir de données incertaines.
function label(order) {
return "Total: " + (order?.total ?? 0);
}
console.log(label(undefined)); // "Total: 0"Remarque sur la priorité
?. a une priorité supérieure à celle de ?? ; ainsi, a?.b ?? c est interprété comme (a?.b) ?? c, exactement comme vous le souhaitez.
const u = { age: null };
console.log(u?.age ?? 18); // 18Une construction claire
Ensemble, ces opérateurs remplacent un long code défensif par une seule ligne lisible, ce qui rend l’intention évidente.
const profile = null;
console.log(profile?.bio?.length ?? 0); // 0Vérification rapide
Prévoyez le résultat.
Récapitulatif
La construction obj?.deep?.prop ?? fallback lit des valeurs imbriquées potentiellement absentes et fournit une valeur par défaut uniquement lorsque le résultat vaut null ou undefined. Elle conserve les valeurs fausses valides comme 0 et "", contrairement à l’approche &&/||. ?. a une priorité supérieure à celle de ??, le regroupement est donc naturellement correct.
Questions Fréquemment Posées
La leçon « Combiner ?. et ?? » est-elle gratuite ?
Oui — le texte complet de « Combiner ?. et ?? » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours JavaScript Academy, passe à CoddyKit PRO. Le cours JavaScript Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Combiner ?. et ?? » ?
Associez l’accès sécurisé à des valeurs par défaut pertinentes. Tu pratiques JavaScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer JavaScript Academy ?
Aucune expérience préalable n'est requise. JavaScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Combiner ?. et ?? » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon JavaScript Academy ?
Oui. Chaque leçon JavaScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Chaînage optionnel avec l’opérateur ?.
- Coalescence des valeurs nulles avec ??
- Combiner ?. et ??
- Appels et accès par indice optionnels