Оператор Optional Chaining (?.) - это новый оператор в JavaScript, который позволяет безопасно обращаться к свойствам и методам объектов, которые могут быть неопределенны или равны null или undefined.
Оператор Optional Chaining позволяет избежать ошибок типа “Cannot read property ‘propertyName’ of undefined”, которые могут возникнуть при попытке обратиться к свойству объекта, которое не существует.
Синтаксис оператора Optional Chaining:
object?.property
object?.method()
object
- объект, к которому нужно обратиться.property
- свойство объекта, к которому нужно обратиться.method()
- метод объекта, к которому нужно обратиться.
Пример использования оператора Optional Chaining:
const person = {
name: "John",
address: {
city: "New York",
country: "USA",
},
}
const country = person.address?.country
console.log(country) // Вывод: "USA"
const street = person.address?.street
console.log(street) // Вывод: undefined
В этом примере, мы используем оператор Optional Chaining для безопасного доступа к свойству country
объекта address
внутри объекта person
. Результатом обращения к свойству country
является значение “USA”. Затем мы используем оператор Optional Chaining для безопасного доступа к свойству street
, которое не существует в объекте address
. Результатом обращения к свойству street
является значение undefined.
Оператор Optional Chaining также можно использовать для безопасного вызова методов объектов:
const person = {
name: "John",
getAddress() {
return this.address
},
}
const city = person.getAddress()?.city
console.log(city) // Вывод: undefined
В этом примере, мы используем оператор Optional Chaining для безопасного вызова метода getAddress()
объекта person
. Если метод getAddress()
возвращает undefined, то результатом вызова метода будет также undefined. Затем мы используем оператор Optional Chaining для безопасного доступа к свойству city
, которое не существует в объекте address
. Результатом обращения к свойству city
является значение undefined.
Оператор Optional Chaining - это удобный и безопасный способ обращения к свойствам и методам объектов в JavaScript, который позволяет избежать ошибок при обращении к неопределенным значениям. Он доступен в современных версиях JavaScript.