Skip to content

Commit c4c0d10

Browse files
authored
Merge pull request #117 from vsemozhetbyt/1.2.9
Address some possible issues in translation of 1.2.9
2 parents f3d5f49 + e63ed1c commit c4c0d10

File tree

3 files changed

+33
-33
lines changed

3 files changed

+33
-33
lines changed

1-js/02-first-steps/09-comparison/1-comparison-questions/solution.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ null === +"\n0\n" → false
1212

1313
Ось чому такі результати:
1414

15-
1. Очевидно, 5 більше за 4. true.
15+
1. Очевидно, 5 більше за 4. `true`.
1616
2. Посимвольне порівняння, тому `false`. `"а"` менше за `"я"`.
1717
3. Знову посимвольне порівняння. Перший символ рядка `"2"` більший за перший символ другого рядка — `"1"`.
18-
4. Спеціальний випадок. Значення `null` і `undefined` рівні під час не строгого порівняння.
18+
4. Спеціальний випадок. Значення `null` і `undefined` рівні лише один одному під час нестрогого порівняння.
1919
5. Строге порівняння різних типів, тому `false`.
20-
6. Аналогічно, як в кроці `(4)`, `null` рівне лише `undefined`.
20+
6. Аналогічно, як в кроці `(4)`, `null` дорівнює лише `undefined`.
2121
7. Строге порівняння різних типів.

1-js/02-first-steps/09-comparison/1-comparison-questions/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ importance: 5
44

55
# Оператори порівняння
66

7-
Який буде результат порівняння цих виразів?
7+
Який буде результат цих виразів?
88

99
```js no-beautify
1010
5 > 4

1-js/02-first-steps/09-comparison/article.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Оператори порівняння
22

3-
Багато з операторів порівняння нам відомі з математики:
3+
Багато з операторів порівняння нам відомі з математики.
44

55
В JavaScript вони записуються ось так:
66

77
- Більше/менше: <code>a &gt; b</code>, <code>a &lt; b</code>.
8-
- Більше/менше або рівне: <code>a &gt;= b</code>, <code>a &lt;= b</code>.
9-
- Рівне: `a == b`, зверніть увагу, для порівняння потрібно використовувати два знаки рівності `==`. Один знак рівності `a = b` означало б присвоєння.
10-
- Не рівне. В математиці позначається символом <code>&ne;</code>, проте в JavaScript записується як <code>a != b</code>.
8+
- Більше/менше або дорівнює: <code>a &gt;= b</code>, <code>a &lt;= b</code>.
9+
- Дорівнює: `a == b`. Зверніть увагу, для порівняння потрібно використовувати два знаки рівності `==`. Один знак рівності `a = b` означав б присвоєння.
10+
- Не дорівнює. В математиці позначається символом <code>&ne;</code>, проте в JavaScript записується як <code>a != b</code>.
1111

12-
В цьому розділі ми вивчимо про різні типи порівнянь, як JavaScript їх виконує та розглянемо важливі особливості.
12+
В цьому розділі ми вивчимо різні типи порівнянь, узнаємо, як JavaScript їх виконує, та розглянемо важливі особливості.
1313

14-
В кінці ви знайдете корисні поради, як уникати специфічні "примхи JavaScript".
14+
В кінці ви знайдете корисні поради, як уникати специфічних "примх" JavaScript.
1515

1616
## Результат порівняння має логічний тип
1717

1818
Всі оператори порівняння повертають значення логічного типу:
1919

20-
- `true` -- означає "так", "правильно" або "правда".
21-
- `false` -- означає "ні", "неправильно" або "не правда".
20+
- `true` -- означає "так", "правильно" або "істина".
21+
- `false` -- означає "ні", "неправильно" або "хибність".
2222

2323
Наприклад:
2424

@@ -39,14 +39,14 @@ alert( result ); // true
3939

4040
Щоб визначити, чи один рядок більший за інший, JavaScript використовує так званий "алфавітний" або "лексикографічний" порядок.
4141

42-
Іншими словами, рядки порівнюються посимвольно.
42+
Інакше кажучи, рядки порівнюються посимвольно.
4343

4444
Наприклад:
4545

4646
```js run
4747
alert( 'Я' > 'А' ); // true
48-
alert( 'Кіт' > 'Код' ); // true
49-
alert( 'Кома' > 'Комар' ); // false
48+
alert( 'Соки' > 'Сода' ); // true
49+
alert( 'Комар' > 'Кома' ); // true
5050
```
5151

5252
Алгоритм порівняння рядків досить простий:
@@ -57,16 +57,16 @@ alert( 'Кома' > 'Комар' ); // false
5757
4. Порівняння продовжується до того часу, доки не закінчиться один з рядків.
5858
5. Якщо два рядки закінчуються одночасно, то вони рівні. Інакше, довший рядок вважатиметься більшим.
5959

60-
В прикладах вище, порівняння `'Я' > 'А'` завершиться на першому кроці, тоді як `"Кіт"` і `"Код"` будуть порівнюватися посимвольно:
60+
В прикладах вище, порівняння `'Я' > 'А'` завершиться на першому кроці, тоді як `'Соки'` і `'Сода'` будуть порівнюватися посимвольно:
6161

62-
1. `К` рівне `К`.
63-
2. `і` більше за `о`.
64-
3. На другому кроці порівнювання закінчується. Перший рядок більший.
62+
1. `С` дорівнює `С`.
63+
2. `о` дорівнює `о`.
64+
3. `к` більше ніж `д`. На цьому кроці порівнювання закінчується. Перший рядок більший.
6565

6666
```smart header="Використовується кодування Unicode, а не справжній алфавіт"
6767
Такий алгоритм порівняння схожий на алгоритм сортування, який використовується в словниках і телефонних довідниках, проте вони не зовсім однакові.
6868
69-
Наприклад, в JavaScript має значення регістр символів. Велика буква `"А"` не рівна маленькій `"а"`. Але яка з них більше? Маленька буква `"а"`. Чому? Тому що маленькі букви мають більший код у внутрішній таблиці кодування, яку використовує JavaScript (Unicode). Ми розглянемо це детальніше в розділі <info:string>.
69+
Наприклад, в JavaScript має значення регістр символів. Велика буква `"А"` не рівна маленькій `"а"`. Але яка з них більше? Маленька буква `"а"`. Чому? Тому що маленькі букви мають більший код у внутрішній таблиці кодування, яку використовує JavaScript (Unicode). Ми розглянемо особливості і наслідки цього кодування в розділі <info:string>.
7070
```
7171

7272
## Порівняння різних типів
@@ -107,7 +107,7 @@ alert( Boolean(b) ); // true
107107
alert(a == b); // true!
108108
```
109109
110-
З точки зору JavaScript, результат очікуваний. Порівняння перетворює значення на числа (тому `"0"` стає `0`), тоді як явне перетворення `Boolean` використовує інший набір правил.
110+
З погляду JavaScript, результат очікуваний. Порівняння перетворює значення на числа (тому `"0"` стає `0`), тоді як явне перетворення за допомогою `Boolean` використовує інший набір правил.
111111
````
112112

113113
## Строге порівняння
@@ -146,14 +146,14 @@ alert( 0 === false ); // false, тому що порівнюються різн
146146

147147
Поведінка `null` і `undefined` під час порівняння з іншими значеннями — особливе:
148148

149-
Під час строгого порівняння `===`
149+
При строгому порівнянні `===`
150150
: Ці значення різні, тому що різні їхні типи.
151151

152152
```js run
153153
alert( null === undefined ); // false
154154
```
155155

156-
При не строгому порівнянні `==`
156+
При нестрогому порівнянні `==`
157157
: Ці значення рівні. Водночас ці значення не рівні значенням інших типів. Це спеціальне правило мови.
158158

159159
```js run
@@ -175,15 +175,15 @@ alert( null == 0 ); // (2) false
175175
alert( null >= 0 ); // (3) *!*true*/!*
176176
```
177177

178-
З точки зору математики це дивно. Результат останнього порівняння показує, що "`null` більше або рівне нуля", в такому випадку, результат одного з порівнянь вище повинен бути `true`, але обидва вони `false`.
178+
З погляду математики це дивно. Результат останнього порівняння показує, що "`null` більше або дорівнює нулю", в такому випадку результат одного з порівнянь вище повинен бути `true`, але вони обидва `false`.
179179

180-
Причина в тому що не строге порівняння `==` і порівняння `> < >= <=` працюють по-різному. Останні оператори конвертують `null` в число, розглядаючи його як `0`. Ось чому вираз (3) `null >= 0` дає `true`, а вираз (1) `null > 0``false`.
180+
Причина в тому що нестроге порівняння `==` і порівняння `> < >= <=` працюють по-різному. Останні оператори конвертують `null` в число, розглядаючи його як `0`. Ось чому вираз (3) `null >= 0` дає `true`, а вираз (1) `null > 0``false`.
181181

182-
З іншого боку, для не строгого порівняння `==` значень `undefined` і `null` діє окреме правило: ці значення не перетворюються на інші типи, вони рівні один одному і не рівні будь-чому іншому. Ось чому вираз (2) `null == 0` повертає результат `false`.
182+
З іншого боку, для нестрогого порівняння `==` значень `undefined` і `null` діє окреме правило: ці значення не перетворюються на інші типи, вони рівні один одному і не рівні будь-чому іншому. Ось чому вираз (2) `null == 0` повертає результат `false`.
183183

184-
### Непорівнюване значення undefined
184+
### Не порівнюйте значення undefined
185185

186-
Значення `undefined` не рівне іншим значенням:
186+
Значення `undefined` не має порівнюватись з іншими значеннями:
187187

188188
```js run
189189
alert( undefined > 0 ); // false (1)
@@ -196,19 +196,19 @@ alert( undefined == 0 ); // false (3)
196196
Ми отримуємо такі результати, тому що:
197197

198198
- Порівняння `(1)` і `(2)` повертає `false`, тому що `undefined` під час порівняння з "не null" значеннями завжди конвертується в `NaN`, а `NaN` — це спеціальне числове значення, яке завжди повертає `false` під час будь-яких порівнянь.
199-
- Не строге порівняння `(3)` повертає `false`, тому що `undefined` рівне тільки `null` і ніяким іншим значенням.
199+
- Нестроге порівняння `(3)` повертає `false`, тому що `undefined` рівне тільки `null`, `undefined` і жодним іншим значенням.
200200

201-
### Уникайте проблем
201+
### Як уникати проблем
202202

203-
Чому ми переглядали ці приклади? Чи повинні ми постійно пам'ятати про всі ці особливості? Не обов'язково. З часом, всі ці заплутані правила стануть для вас знайомими, але можна уникнути проблем, якщо дотримуватися простих правил:
203+
Чому ми переглядали ці приклади? Чи повинні ми постійно пам'ятати про всі ці особливості? Не обов'язково. З часом всі ці заплутані правила стануть для вас знайомими, але можна уникнути проблем, якщо дотримуватися надійних правил:
204204

205205
- Будьте пильні під час порівняння будь-якого значення з `undefined/null`, за винятком строгого порівняння `===`.
206-
- Не використовуйте порівняння `>= > < <=` зі змінними, які можуть приймати значення `null/undefined`, якщо не впевнені в тому, що робите. Якщо змінна може приймати ці значення, то додайте для них окремі перевірки.
206+
- Не використовуйте порівняння `>= > < <=` зі змінними, які можуть приймати значення `null/undefined`, хіба що ви цілком впевнені в тому, що робите. Якщо змінна може приймати ці значення, то додайте для них окремі перевірки.
207207

208208
## Підсумки
209209

210210
- Оператори порівняння повертають значення логічного типу.
211211
- Рядки порівнюються посимвольно в лексикографічному порядку.
212212
- Значення різних типів під час порівняння конвертуються в числа. Винятками є порівняння за допомогою операторів строгої рівності/нерівності.
213213
- Значення `null` і `undefined` рівні `==` один одному і не рівні будь-якому іншому значенню.
214-
- Будьте обережні під час використання операторів порівняння `>` чи `<` зі змінними, які можуть приймати значення `null/undefined`. Хорошою ідеєю буде зробити окрему перевірку на `null/undefined` для таких значень.
214+
- Будьте обережні, використовуючи оператори порівняння на зразок `>` чи `<` зі змінними, які можуть приймати значення `null/undefined`. Хорошою ідеєю буде зробити окрему перевірку на `null/undefined` для таких значень.

0 commit comments

Comments
 (0)