Освоение оператора единственного вопросительного знака в JavaScript: подробное руководство

В JavaScript в ECMAScript 2020 появился одиночный оператор вопросительного знака (также известный как необязательный оператор цепочки). Этот оператор обеспечивает краткий способ обработки ситуаций, когда свойство или метод могут быть неопределенными или иметь значение NULL. В этой статье мы рассмотрим различные методы использования одного оператора вопросительного знака с примерами кода, чтобы продемонстрировать его функциональность и полезность.

Метод 1: необязательная цепочка со свойствами объекта
Оператор с одним вопросительным знаком можно использовать для доступа к вложенным свойствам объекта без выдачи ошибки, если промежуточное свойство не определено или имеет значение NULL. Рассмотрим следующий пример:

const user = {
  name: 'John',
  address: {
    city: 'New York',
    street: '123 Main St',
  },
};
const cityName = user.address?.city;
console.log(cityName); // Output: 'New York'

Метод 2: необязательная цепочка с вызовами функций
Оператор с одним вопросительным знаком также можно использовать с вызовами функций. Если функция не существует, выражение будет иметь значение undefinedвместо того, чтобы выдавать ошибку. Вот пример:

const calculator = {
  add: (a, b) => a + b,
};
const result = calculator.subtract?.(5, 3);
console.log(result); // Output: undefined

Метод 3: необязательная цепочка с элементами массива
Оператор с одним вопросительным знаком можно использовать для доступа к элементам массива, которые могут быть неопределенными или иметь значение NULL. Вот пример:

const array = [1, 2, 3, 4];
const element = array[10]?.toString();
console.log(element); // Output: undefined

Метод 4: объединение необязательного объединения с нулевым оператором объединения.
Оператор с одним вопросительным знаком можно объединить с нулевым оператором объединения (??), чтобы предоставить значение по умолчанию, если к свойству или функции осуществляется доступ. равно undefinedили null. Рассмотрим следующий пример:

const user = {
  name: 'John',
};
const cityName = user.address?.city ?? 'Default City';
console.log(cityName); // Output: 'Default City'

Оператор с одним вопросительным знаком в JavaScript предлагает мощный способ обработки потенциально неопределенных или нулевых свойств и функций. Используя этот оператор, вы можете написать более лаконичный и надежный код, избегая ненужных проверок на ошибки. Не забывайте использовать его разумно и учитывать совместимость браузера, поскольку старые браузеры могут не поддерживать этот оператор.