JavaScript — самый популярный язык в наши дни. Популярность языка растет в последние пять лет. Одно из улучшений кода за последние двенадцать месяцев: Необязательная цепочка (?.)

Я хочу использовать простой объект JavaScript, чтобы представить преимущества Необязательная цепочка (?.).

const developer = {
  firstName: 'Dimitar',
  lastName: 'Danailov',
  age: 32,
}

developer.firstName имеет значение, равное Dimitar

developer.lastName имеет значение, равное Danailov

developer.age имеет значение, равное 32

Что произойдет, если кто-то получит доступ: developer.name . Оператор . вернет: undefined

Если кто-то получит доступ: developer.name.firstName : . оператор выдаст ошибку:

VM651:1 Uncaught TypeError: Cannot read property 'firstName' of undefined

Примечание автора.Я работаю разработчиком JavaScript с 2008 года. Ошибки оператора . – одни из самых распространенных ошибок в рабочей среде.

Эти ошибки являются основной причиной: Необязательная цепочка (?.) должна быть добавлена ​​как функция. Возьмем тот же пример.
developer?.name снова вернется: undefined

developer?.name?.firstName вернется undefined

Необязательная цепочка (?.) может быть использована, если мы хотим получить доступ

  • Имя свойства объекта (obj?.prop)
  • Выражение объекта (obj?.[expr])
  • Индекс массива (arr?.[index])
  • Функция (func?.(args))

Поддержка браузера / Могу ли я использовать

Лучший источник: https://caniuse.com/#feat=mdn-javascript_operators_Optional_chaining

Июль 2020 г.: оператор поддерживается последними версиями браузеров. Если вашему приложению требуется поддержка других версий браузера, добавьте: @babel/plugin-syntax-optional-chaining

Настройка установки такова:

npm install --save-dev @babel/plugin-syntax-optional-chaining

Пожалуйста, обновите конфигурации плагинов babel:

{
   "plugins": ["@babel/plugin-syntax-optional-chaining"]
}

Вывод:

Серебряной пули не существует!!! У каждого оператора есть преимущества и недостатки. Если вы начинающий разработчик: первый вопрос должен быть таким: Нужно ли вам использовать необязательное связывание (?.). Необязательный оператор цепочки (?.) может создать более сложную проблему для отладки!!!

Если ваша должность: старший разработчик, руководитель группы и архитектор программного обеспечения: вы должны четко указать, когда и как: Можно использовать необязательную цепочку (?.)!