Что значит "?." (точка после знака вопроса) означает в JS
Я наткнулся на "?" синтаксис в другом вопросе SO. Что-то вроде этого -
console.log(x?.y?.z);
Что оно делает?
1 ответ
Это называется необязательной цепочкой.
Это позволяет использовать цепочку свойств без необходимости проверять свойства на каждом уровне. Он прерывает оценку свойств, не вызывая исключений, что позволяет избежать ошибки "Не удается прочитать X of undefined".
let o = {p: {q: 'foo'}};
try {
console.log('Trying to access the property x');
console.log(o.x.y);
}
catch(e) {
console.log('That was an error');
}
console.log('Trying to access the property x with Optional Chaining');
console.log(o?.x?.y);
Необязательное объединение дополнительных вариантов использования
С вызовами функций
let result = someInterface.customMethod?.();
С выражениями
let nestedProp = obj?.['prop' + 'Name'];
С элементами массива
let arrayItem = arr?.[42];