Menu
Coddy logo textTech

Опциональная цепочка JSON

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 24 из 65.

Опциональная цепочка (?.) позволяет безопасно обращаться к вложенным свойствам, не беспокоясь об ошибках, если свойство равно null или undefined.

Пример без опциональной цепочки:

let obj = {};
console.log(obj.key1.key2);
// Ошибка: Невозможно прочитать свойства undefined

Пример с использованием опциональной цепочки (Optional Chaining):

let obj = {};
console.log(obj.key1?.key2);
// undefined (без ошибки)
  • Если key1 существует, он обращается к key2.
  • Если key1 имеет значение null или undefined, он возвращает undefined вместо того чтобы вызывать ошибку.

Ещё примеры:

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

console.log(user.profile?.name);
// "Alice"
console.log(user.profile?.age);
// undefined (без ошибки)
console.log(user.address?.city);
// undefined (без ошибки)
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Шпаргалка

Опциональная цепочка (?.) безопасно обращается к вложенным свойствам без ошибок, если свойство равно null или undefined:

let obj = {};
console.log(obj.key1?.key2);
// undefined (без ошибки)

Если свойство существует, происходит обращение к следующему уровню. Если оно равно null или undefined, возвращается undefined вместо того, чтобы вызывать ошибку.

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

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

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток