F
FrontEnd_Xpert
@frontend_xpert22 подп.
104просмотров
9 декабря 2024 г.
questionScore: 114
🍀 Оператор опциональной цепочки (?.) 1. Что это?: Это специальный оператор в JavaScript, который позволяет безопасно проверять, существует ли объект или его свойство перед тем, как к нему обратиться. 2. Как работает? : - Если объект или свойство не существует, он просто возвращает undefined, вместо того чтобы вызывать ошибку. - Пример: let user = { name: 'Аня', address: { city: 'Москва' } }; console.log(user.address?.city); // 'Москва' console.log(user.phone?.number); // undefined (не вызовет ошибку) Опциональная цепочка ?. останавливает вычисление и возвращает undefined, если значение перед ?. равно undefined или null. 3. Зачем это нужно?: - Упрощает код, избегая множественных проверок, таких, например, как: let user = { name: 'Аня', address: { city: 'Москва' } }; // Получаем город с проверками console.log(user.address && user.address.city); // 'Москва' // Получаем номер телефона с проверками console.log(user.phone && user.phone.number); // undefined (не вызовет ошибку) Проход при помощи логического оператора И && через весь путь к свойству гарантирует, что все компоненты существуют (если нет, вычисление прекращается), но также не является идеальным. Один из минусов, это то, что имена свойств дублируются в коде. Например, в приведённом выше коде user.phone появляется два раза. - Помогает избежать ошибок, если объект или его свойства не существуют. Так например, в записи user.address.phone?.value, в примере выше ?. позволяет phone безопасно быть null/undefined (и в этом случае возвращает undefined), но это так только для phone. Доступ к последующим свойствам осуществляется обычным способом. Если мы хотим, чтобы некоторые из них были необязательными в объекте user, тогда нам нужно будет заменить больше . на ?.. #javascript #angular #frontend #programming 🐱 FrontEnd_Xpert
104
просмотров
1966
символов
Нет
эмодзи
Нет
медиа

Другие посты @frontend_xpert

Все посты канала →
🍀 Оператор опциональной цепочки (?.) 1. Что это?: Это специ — @frontend_xpert | PostSniper