0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Этот оператор называется "оператор опциональной последовательности". Он позволяет обращаться в нутренним свойствам объекта, без риска что родительское свойство отсутствует в объекте. Чтобы лучше это понять, разберем пример.</p>
1
<p>Этот оператор называется "оператор опциональной последовательности". Он позволяет обращаться в нутренним свойствам объекта, без риска что родительское свойство отсутствует в объекте. Чтобы лучше это понять, разберем пример.</p>
2
<p>Предположим у нас есть сущности пользователей с их адресами в виде объектов по типу:</p>
2
<p>Предположим у нас есть сущности пользователей с их адресами в виде объектов по типу:</p>
3
<p>Предположим мы хотим сформировать строку содержащую страну и город пользователя Russia, Perm. Для этого мы просто обращаемся к внутренним ключам объекта в ключе address:</p>
3
<p>Предположим мы хотим сформировать строку содержащую страну и город пользователя Russia, Perm. Для этого мы просто обращаемся к внутренним ключам объекта в ключе address:</p>
4
<p>Но что если у нас будет пользователь с отсутствующим адресом? Такой код выдаст ошибку, потому что мы попытались обратиться к свойствам country и city у значения undefined:</p>
4
<p>Но что если у нас будет пользователь с отсутствующим адресом? Такой код выдаст ошибку, потому что мы попытались обратиться к свойствам country и city у значения undefined:</p>
5
<p>У объекта user нет свойства address, поэтому мы не можем к обратиться к нему. Чтобы избежать такой ошибки, используется оператор опциональной последовательности: добавляется знак вопроса после свойства, которого может не быть в объекте. Такой код уже не выдаст ошибку:</p>
5
<p>У объекта user нет свойства address, поэтому мы не можем к обратиться к нему. Чтобы избежать такой ошибки, используется оператор опциональной последовательности: добавляется знак вопроса после свойства, которого может не быть в объекте. Такой код уже не выдаст ошибку:</p>
6
<p>Не смотря на то, что это удобный инструмент, бездумно его использовать не стоит. Обычно его использование говорит о том, что в приложении есть проблемы. Например, в примере выше, должна стоять проверка на существование адреса пользователя. Если адреса нет, то нет смысла составлять строку. Если добавить такую проверку, то необходимость в использовании этого оператора отпадает.</p>
6
<p>Не смотря на то, что это удобный инструмент, бездумно его использовать не стоит. Обычно его использование говорит о том, что в приложении есть проблемы. Например, в примере выше, должна стоять проверка на существование адреса пользователя. Если адреса нет, то нет смысла составлять строку. Если добавить такую проверку, то необходимость в использовании этого оператора отпадает.</p>