Menu
Coddy logo textTech

Chaînage optionnel JSON

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 24 sur 65.

L'enchaînement optionnel (?.) vous permet d'accéder en toute sécurité à des propriétés imbriquées sans vous soucier des erreurs si une propriété est null ou undefined.

Exemple sans chaînage optionnel :

let obj = {};
console.log(obj.key1.key2);
// Erreur : Impossible de lire les propriétés de undefined

Exemple avec le chaînage optionnel :

let obj = {};
console.log(obj.key1?.key2);
// undefined (pas d'erreur)
  • Si key1 existe, il accède à key2.
  • Si key1 est null ou undefined, il renvoie undefined au lieu de lever une erreur.

Plus d'exemples :

let user = {
	profile: {
		name: "Alice"
	}
};

console.log(user.profile?.name);
// "Alice"
console.log(user.profile?.age);
// undefined (aucune erreur)
console.log(user.address?.city);
// undefined (pas d'erreur)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Aide-mémoire

L'enchaînement optionnel (?.) accède en toute sécurité aux propriétés imbriquées sans erreur si une propriété est null ou undefined :

let obj = {};
console.log(obj.key1?.key2);
// undefined (pas d'erreur)

Si la propriété existe, il accède au niveau suivant. S'il est null ou undefined, il renvoie undefined au lieu de lever une erreur.

let user = {
	profile: {
		name: "Alice"
	}
};

console.log(user.profile?.name);    // "Alice"
console.log(user.profile?.age);     // undefined
console.log(user.address?.city);    // undefined

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux