Skip to content

Commit c314d43

Browse files
authored
small language corrections
1 parent 0c9ef76 commit c314d43

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

1-js/02-first-steps/07-operators/article.md

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Оператори
22

3-
Ми знаємо багато операторів зі школи. Це такі речі, як додавання `+`, множення `*`, віднімання `-`, тощо.
3+
Зі шкільної програми, ми знаємо багато арифметичний операцій, такі як додавання `+`, множення `*`, віднімання `-`, тощо.
44

55
У цьому розділі ми зупинимося на аспектах операторів, які не охоплені шкільною арифметикою.
66

@@ -26,7 +26,7 @@
2626
alert( y - x ); // 2, бінарний мінус віднімає значення
2727
```
2828

29-
Формально, ми говоримо про два різні оператори: унарне заперечення (єдиний операнд: змінює знак) та бінарне віднімання (два опернди: віднімає).
29+
Формально, ми говоримо про два різні оператори: унарне заперечення (єдиний операнд: змінює знак) та бінарне віднімання (два операнди: віднімає).
3030

3131
## Об'єднання рядків, бінарний +
3232
@@ -50,13 +50,13 @@ alert( '1' + 2 ); // "12"
5050
alert( 2 + '1' ); // "21"
5151
```
5252

53-
Бачите, не має значення, чи перший операнд є рядком або другий. Правило просте: якщо будь-який операнд є радком, інший також перетворюється на рядок.
53+
Бачите, не має значення, чи перший операнд є рядком чи другий. Правило просте: якщо будь-який операнд є рядком, інший також перетворюється на рядок.
5454

5555
Однак зверніть увагу, що операції виконуються зліва направо. Якщо є два числа, за якими йде рядок, числа будуть додані перед перетворенням на рядок:
5656

5757

5858
```js run
59-
alert(2 + 2 + '1' ); // "41" а не "221"
59+
alert(2 + 2 + '1' ); // "41", а не "221"
6060
```
6161

6262
Об'єднання рядків і перетворення є особливою ознакою бінарного плюса `+`. Інші арифметичні оператори працюють тільки з числами і завжди перетворюють свої операнди на числа.
@@ -121,23 +121,23 @@ alert( +apples + +oranges ); // 5
121121
// alert( Number(apples) + Number(oranges) ); // 5
122122
```
123123

124-
З точки зору математика, надмір плюсів може здатися дивним. Але з точки зору програміста, немає нічого особливого: спочатку застосовується унарні плюси, вони перетворюють рядки на числа, а потім бінарний плюс підсумовує їх.
124+
З точки зору математики, надмірні плюси можуть здатися дивними. Але з точки зору програміста, немає нічого особливого: спочатку застосовується унарні плюси, вони перетворюють рядки на числа, а потім бінарний плюс підсумовує їх.
125125

126126
Чому унарні плюси застосовуються до значень перед бінарними плюсами? Як ми побачимо далі, це пов'язано з їх *більш високим пріоритетом*.
127127

128128
## Пріоритет оператора
129129

130-
Ящо вираз має більше одного оператора, порядок виконання визначається їх *пріоритетом*, або, іншими словами, неявним порядком пріоритетів операторів.
130+
Якщо вираз має більше одного оператора, порядок виконання визначається їх *пріоритетом*, або, іншими словами, неявним порядком пріоритетів операторів.
131131

132-
Зі школи ми всі знаємо, що множення у виразі `1 + 2 * 2` повинно бути обчислене перед додаванням. Саме це і є пріоритетом. Кажуть, що множення має *більш високий пріоритет*, ніж додавання.
132+
Зі школи ми всі знаємо, що множення у виразі `1 + 2 * 2` повинно бути обчислене перед додаванням. Саме це і є пріоритетом. Кажуть, що множення має *вищий пріоритет*, ніж додавання.
133133

134134
Дужки перевизначають будь-який пріоритет, тому, якщо ми не задоволенні неявним приорітетом, ми можемо використовувати дужки, щоб змінити його. Наприклад: `(1 + 2) * 2`.
135135

136-
У JavaScript є багато операторів. Кожен оператор має відповідний номер пріоритету. Першим виконується той оператор, який має найбільший номер. Якщо пріоритет є однаковим, порядок виконання — зліва направо.
136+
У JavaScript є багато операторів. Кожен оператор має відповідний номер пріоритету. Першим виконується той оператор, який має найбільший номер пріоритету. Якщо пріоритет є однаковим, порядок виконання — зліва направо.
137137

138-
Ось витяг із [таблиці пріоритетів](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (вам не потрібно запам'ятовувати це, але зверніть увагу, що унарні оператори вище за відповідні бінарні):
138+
Ось витяг із [таблиці пріоритетів](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (вам не потрібно це запам'ятовувати, але зверніть увагу, що унарні оператори мають вищий пріоритет за відповідні бінарні):
139139

140-
| Приорітет | Ім'я | Знак |
140+
| Пріоритет | Ім'я | Знак |
141141
|------------|------|------|
142142
| ... | ... | ... |
143143
| 16 | унарний плюс | `+` |
@@ -150,7 +150,7 @@ alert( +apples + +oranges ); // 5
150150
| 3 | присвоєння | `=` |
151151
| ... | ... | ... |
152152

153-
Як ми бачемо, "унарний плюс" має пріоритет `16`, який вище за `13` — пріоритет "додавання" (бінарний плюс). Саме тому, у виразі `"+apples + +oranges"`, унарні плюси виконуються до додавання (бінарного плюса).
153+
Як ми бачемо, "унарний плюс" має пріоритет `16`, що вище за `13` — пріоритет "додавання" (бінарний плюс). Саме тому, у виразі `"+apples + +oranges"`, унарні плюси виконуються до додавання (бінарного плюса).
154154

155155
## Присвоєння
156156

@@ -178,7 +178,7 @@ alert( b ); // 4
178178
alert( c ); // 4
179179
```
180180

181-
Ланцюгове присвоєння виконується справа наліво. Спочатку обчислюється самий правий вираз `2 + 2`, а потім присвоюється зінним ліворуч : `c`, `b` and `a`. Наприкінці всі змінні мають спільне значення.
181+
Ланцюгове присвоєння виконується справа наліво. Спочатку обчислюється самий правий вираз `2 + 2`, а потім присвоюється змінним ліворуч: `c`, `b` та `a`. В результаті всі змінні мають спільне значення.
182182

183183
````smart header="Оператор присвоєння `\"=\"` повертає значення"
184184
Оператор завжди повертає значення. Це очевидно для більшості з них, як додавання `+` або множення `*`. Але оператор присвоєння також додтримується цього правила.
@@ -199,9 +199,9 @@ alert( a ); // 3
199199
alert( c ); // 0
200200
```
201201

202-
У наведенному вище прикладі результат `(a = b + 1)` є значенням, яке присвоюється змінній `a` (тобто `3`). Потім воне використовується для віднімання від `3`.
202+
У наведенному вище прикладі результат `(a = b + 1)` є значенням, яке присвоюється змінній `a` (тобто `3`). Потім воно використовується для віднімання від `3`.
203203

204-
Смішний код, чи не так? Ми повинні зрозуміти, як це працює, бо іноді ми бачимо подібне у бібліотеках третьої сторони, але самі не повинні писати нічого подібного. Такі трюки, безумовно, не роблять код більш ясним або читабельним.
204+
Смішний код, чи не так? Ми повинні зрозуміти, як це працює, бо іноді ми бачимо подібне у сторонніх бібліотеках, але самі не повинні писати нічого подібного. Такі трюки, безумовно, не роблять код більш ясним або читабельним.
205205
````
206206
207207
## Залишок %
@@ -256,7 +256,7 @@ alert( 8 ** (1/3) ); // 2 (степінь 1/3 — це теж саме, що і
256256
counter++; // працює так само, як counter = counter + 1, але коротше
257257
alert( counter ); // 3
258258
```
259-
- **Декремент** `--` зменьшує змінну на 1:
259+
- **Декремент** `--` зменшує змінну на 1:
260260
261261
```js run no-beautify
262262
let counter = 2;
@@ -265,7 +265,7 @@ alert( 8 ** (1/3) ); // 2 (степінь 1/3 — це теж саме, що і
265265
```
266266
267267
```warn
268-
Інкремент/декремент можуть застосовуватись лише до змінних. Спроба використовувати їх на значенні як `5++` дасть помилку.
268+
Інкремент/декремент можуть застосовуватись лише до змінних. Спроба використати їх на значенні як `5++` дасть помилку.
269269
```
270270
271271
Оператори `++` та `--` можуть розташовуватись до або після змінної.
@@ -279,7 +279,7 @@ alert( 8 ** (1/3) ); // 2 (степінь 1/3 — це теж саме, що і
279279
280280
Давайте розберемось. Як відомо, усі оператори повертають значення. Інкремент/декремент не є винятком. Префіксна форма повертає нове значення, тоді як постфіксна форма повертає старе значення (до збільшення/зменшення).
281281
282-
Щоб побачитит різницю, наведемо приклад:
282+
Щоб побачити різницю, наведемо приклад:
283283
284284
```js run
285285
let counter = 1;
@@ -325,7 +325,7 @@ alert(a); // *!*1*/!*
325325
```
326326
327327
````smart header="Інкремент/декремент серед інших операторів"
328-
Оператори `++/--` також можуть використовуватись всередені виразів. Їх пріоритет вище за більшість інщих арифметичних операцій.
328+
Оператори `++/--` також можуть використовуватись всередені виразів. Їх пріоритет вищий за більшість інщих арифметичних операцій.
329329
330330
Наприклад:
331331
@@ -338,10 +338,10 @@ alert( 2 * ++counter ); // 4
338338
339339
```js run
340340
let counter = 1;
341-
alert( 2 * counter++ ); // 2, тому що counter++ повертається "старе" значення
341+
alert( 2 * counter++ ); // 2, тому що counter++ повертає "старе" значення
342342
```
343343
344-
Не дивлячісь на те, що з технічної точки зору це допустимо, таке використання робить код меньш читабельним. Один рядок робить кілька речей -- не є добре.
344+
Не дивлячись на те, що з технічної точки зору це допустимо, таке використання робить код менш читабельним. Коли один рядок робить кілька речей -- це не добре.
345345
346346
При читанні коду швидке "вертикальне" сканування оком може легко пропустити щось подібне до `counter++` і не буде очевидним, що змінна була збільшена.
347347
@@ -370,11 +370,11 @@ counter++;
370370
- RIGHT SHIFT ( `>>` )
371371
- ZERO-FILL RIGHT SHIFT ( `>>>` )
372372

373-
Ці оператори використовуються дуже рідко. Цоб їх зрозуміти, нам потрібно заглибитись у представлення числа на низькому рівні і зараз не самий оптимальний час для цього, тим більше, що нам вони не будуть потрібні найближчим часом. Якщо вам цікаво, ви можете прочитати статтю [Bitwise Operators](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) на MDN. Це було би більш практично зробити, коли виникне реальна потреба.
373+
Ці оператори використовуються дуже рідко. Щоб їх зрозуміти, нам потрібно заглибитись у представлення числа на низькому рівні і зараз не самий оптимальний час для цього, тим більше, що нам вони не будуть потрібні найближчим часом. Якщо вам цікаво, ви можете прочитати статтю [Bitwise Operators](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) на MDN. Це було би більш практично зробити, коли виникне реальна потреба.
374374

375-
## Змінити-на-місці
375+
## Оператор "модифікувати та присвоїти"
376376

377-
Часто нам потрібно застосувати оператор до змінної та зберегти новий результат у ту ж саму змінну.
377+
Часто нам потрібно застосувати оператор до змінної і зберегти новий результат у ту ж саму змінну.
378378

379379
Наприклад:
380380

@@ -389,12 +389,12 @@ n = n * 2;
389389
```js run
390390
let n = 2;
391391
n += 5; // тепер n = 7 (теж саме, що і n = n + 5)
392-
n *= 2; // now n = 14 (теж саме, що і n = n * 2)
392+
n *= 2; // тепер n = 14 (теж саме, що і n = n * 2)
393393

394394
alert( n ); // 14
395395
```
396396

397-
Короткий "модифікуй-та-присвоюй" оператор існує для всіх арифметичних та побітових операторів: `/=`, `-=`, тощо.
397+
Короткий оператор "модифікувати та присвоїти" існує для всіх арифметичних та побітових операторів: `/=`, `-=`, тощо.
398398

399399
Такі оператори мають таку ж перевагу, як і звичайне присвоєння, тому вони виконуються після більшості інших обчисленнь:
400400

@@ -427,7 +427,7 @@ alert( a ); // 7 (результат обчислення 3 + 4)
427427
```smart header="Кома має дуже низький пріоритет"
428428
Зверніть увагу, що оператор кома має дуже низький пріоритет, нижчий за `=`, тому дужки є важливими в наведеному вище прикладі.
429429
430-
Без них: `a = 1 + 2, 3 + 4` обчислює спочатку `+`, підсумовуючи числа у `a = 3, 7`, потім оператор присвоєння `=` присвоює `a = 3`, і нарешті число після коми, `7`, не обробляється, тому його ігнорують.
430+
Без них: `a = 1 + 2, 3 + 4` обчислює спочатку `+`, підсумовуючи числа у `a = 3, 7`, потім оператор присвоєння `=` присвоює `a = 3`, і нарешті число після коми, `7`, не обробляється та ігнорується.
431431
```
432432

433433
Чому нам потрібен оператор, що викидає все, окрім останньої частини?

0 commit comments

Comments
 (0)