Skip to content

Commit

Permalink
update(JS): web/javascript/guide/expressions_and_operators (#2542)
Browse files Browse the repository at this point in the history
* update(JS): web/javascript/guide/expressions_and_operators

* update(JS): web/javascript/guide/expressions_and_operators

* update(JS): web/javascript/guide/expressions_and_operators
  • Loading branch information
undead404 authored Dec 8, 2023
1 parent d37ae47 commit 8ef4772
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions files/uk/web/javascript/guide/expressions_and_operators/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ page-type: guide
- [Умовний (тернарний) оператор](#umovnyi-ternarnyi-operator)
- [Оператор коми](#operator-komy)
- [Унарні оператори](#unarni-operatory)
- [Відносні оператори](#vidnosni-operatory)
- [Оператори відношення](#operatory-vidnoshennia)

Ці оператори об'єднують операнди, котрі або сформовані операторами вищого пріоритету, або одним із [базових виразів](#bazovi-vyrazy). Повний і розгорнутий список операторів та виразів доступний також у [довіднику](/uk/docs/Web/JavaScript/Reference/Operators).

Expand Down Expand Up @@ -156,7 +156,7 @@ x = g(); // Повторно присвоює змінній x результа

А проте, подібно до інших виразів, вирази присвоєння виду `x = f()` обчислюються до значення результату. Хоч зазвичай цей результат не використовується, він може бути використаний іншим виразом.

Утворення ланцюжків присвоєнь або присвоєнь, вкладених в інші вирази, може призвести до неочікуваної поведінки. Через це частина посібників зі стилю JavaScript коду [не радить утворювати з присвоєнь ланцюжки або вкладеність][https://github.com/airbnb/javascript/blob/master/readme.md#variables--no-chain-assignment]).
Утворення ланцюжків присвоєнь або присвоєнь, вкладених в інші вирази, може призвести до неочікуваної поведінки. Через це частина посібників зі стилю JavaScript коду [не радить утворювати з присвоєнь ланцюжки або вкладеність](https://github.com/airbnb/javascript/blob/master/readme.md#variables--no-chain-assignment).
Попри це, іноді ланцюжки та вкладеність присвоєнь можуть траплятися, тому важливо розуміти, як вони працюють.

При додаванні присвоєння в ланцюжок або вкладеність, результат такого присвоєння сам може бути присвоєний іншій змінній. Він може бути виведений, вписаний в літерал масиву або виклик функції, і так далі.
Expand Down Expand Up @@ -207,7 +207,7 @@ x[f()] = g();

#### Приклад обчислення №1

`y = x = f()`рівносильно `y = (x = f())`, адже оператор присвоєння `=` має [праву асоціативність](https://en.wikipedia.org/wiki/Operator_associativity).
Запис `y = x = f()`рівносильний щодо `y = (x = f())`, адже оператор присвоєння `=` має [праву асоціативність](https://en.wikipedia.org/wiki/Operator_associativity).
Проте обчислюється він зліва направо:

1. Починається обчислення виразу присвоєння `y = x = f()`.
Expand Down Expand Up @@ -239,7 +239,7 @@ x[f()] = g();

#### Приклад обчислення №3

`x[f()] = g()` так само обчислюється зліва направо. (Цей приклад виходить з припущення, що `x` уже присвоєний якийсь об'єкт. Більше про об'єкти читайте в [Роботі з об'єктами](/uk/docs/Web/JavaScript/Guide/Working_with_objects).)
Вираз `x[f()] = g()` так само обчислюється зліва направо. (Цей приклад виходить з припущення, що `x` уже присвоєний якийсь об'єкт. Більше про об'єкти читайте в [Роботі з об'єктами](/uk/docs/Web/JavaScript/Guide/Working_with_objects).)

1. Починається обчислення виразу `x[f()] = g()`.
1. Починається обчислення звертання до властивості `x[f()]` зліва цього присвоєння.
Expand All @@ -252,7 +252,7 @@ x[f()] = g();

### Слід уникати ланцюжків присвоєння

Ланцюжки присвоєнь і вкладання присвоєнь в інші вирази можуть призводити до дивної поведінки. Через це [заведено уникати ланцюжків присвоєння в межах однієї інструкції][https://github.com/airbnb/javascript/blob/master/readme.md#variables--no-chain-assignment]).
Ланцюжки присвоєнь і вкладання присвоєнь в інші вирази можуть призводити до дивної поведінки. Через це [заведено уникати ланцюжків присвоєння в межах однієї інструкції](https://github.com/airbnb/javascript/blob/master/readme.md#variables--no-chain-assignment).

Якщо конкретніше, то постановка ланцюжка змінних в інструкціях [`const`][], [`let`][] і [`var`][] нерідко _не_ працює. Лише зовнішня (найлівіша) змінна оголошується; решта змінних в межах такого ланцюжка присвоєння _не_ оголошуються інструкцією `const`, `let` чи `var`.
Наприклад:
Expand Down

0 comments on commit 8ef4772

Please sign in to comment.