Skip to content

Commit 577082d

Browse files
authored
Corrected word, added punctuation marks (#697)
1 parent f052d33 commit 577082d

File tree

1 file changed

+5
-5
lines changed
  • 1-js/04-object-basics/07-optional-chaining

1 file changed

+5
-5
lines changed

1-js/04-object-basics/07-optional-chaining/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ alert( user.address && user.address.street && user.address.street.name ); // und
7676

7777
Логічне "І" з ланцюжком властивостей гарантує нам, що всі вони існують (якщо ж ні -- обчислення припиняється), але й це все ще не ідеал.
7878

79-
Як ви бачите, імена властивостей досі дублюються в коді. В прикладі вище властивість `user.address` появляється тричі.
79+
Як ви бачите, імена властивостей досі дублюються в коді. В прикладі вище властивість `user.address` з'являється тричі.
8080

8181
Ось чому опціональний ланцюжок `?.` був доданий в мову. Щоб розв'язати цю проблему раз і назавжди!
8282

@@ -120,7 +120,7 @@ alert( user?.address.street ); // undefined
120120
Наприклад в `user?.address.street.name` конструкція `user?.` дозволяє `user` залишатись `null/undefined` (і повертати `undefined` в такому випадку), але це працює тільки для `user`. Доступ до решти властивостей здійснюється звичайним способом. Якщо ми хочемо, щоб якась з них була необов’язковою, тоді конкретно для цієї властивості нам доведеться замінити `.` на `?.`.
121121
122122
````warn header="Не зловживайте опціональним ланцюжком"
123-
Нам слід використовувати `?.` тільки в тих ситуаціях коли ми припускаємо що значення може не існувати.
123+
Нам слід використовувати `?.` тільки в тих ситуаціях коли ми припускаємо, що значення може не існувати.
124124
125125
Наприклад, якщо за нашою логікою об’єкт `user` точно існує, але його властивість `address` є необов’язковою, тоді нам слід використовувати конструкцію `user.address?.street`. Проте аж ніяк не `user?.address?.street`.
126126
@@ -180,7 +180,7 @@ userGuest.admin?.(); // нічого (немає такого методу)
180180
*/!*
181181
```
182182

183-
В обох випадках спочатку використовуємо крапку (`userAdmin.admin`) для доступу до властивості `admin`, оскільки об’єкт користувача точно існує, а це означає що ми можемо звернутись до будь-якої його властивості.
183+
В обох випадках спочатку використовуємо крапку (`userAdmin.admin`) для доступу до властивості `admin`, оскільки об’єкт користувача точно існує, а це означає, що ми можемо звернутись до будь-якої його властивості.
184184

185185
Вже потім `?.()` перевіряє ліву частину: якщо функція `admin` існує, то вона виконається (у випадку з `userAdmin`). Інакше (для `userGuest`) обчислення припиниться без помилок.
186186

@@ -213,7 +213,7 @@ delete user?.name; // видалити user.name, якщо користувач
213213
let user = null;
214214
215215
user?.name = "Іван"; // Помилка, не спрацює
216-
// це по суті те ж саме що undefined = "John"
216+
// це по суті те ж саме, що й undefined = "John"
217217
```
218218

219219
Воно недостатньо «розумне» для цього.
@@ -231,4 +231,4 @@ user?.name = "Іван"; // Помилка, не спрацює
231231

232232
Ланцюжок `?.` дозволяє без виникнення помилок звертатись до вкладених властивостей.
233233

234-
Однак, потрібно розумно застосовувати `?.`, тільки в тих випадках де допустимо що ліва частина не існує. Щоб таким чином не приховувати потенційні помилки програмування.
234+
Однак, потрібно розумно застосовувати `?.`, тільки в тих випадках де допустимо, що ліва частина не існує. Щоб таким чином не приховувати потенційні помилки програмування.

0 commit comments

Comments
 (0)