diff --git a/1-js/02-first-steps/10-ifelse/1-if-zero-string/solution.md b/1-js/02-first-steps/10-ifelse/1-if-zero-string/solution.md
index c2dc72c46..b3734b223 100644
--- a/1-js/02-first-steps/10-ifelse/1-if-zero-string/solution.md
+++ b/1-js/02-first-steps/10-ifelse/1-if-zero-string/solution.md
@@ -1,6 +1,6 @@
**Так, буде.**
-Будь-який рядок, за вийнятком порожнього (і `"0"` не є порожнім) перетворюються на `true` у логічному контексті.
+Будь-який рядок, за вийнятком порожнього (і `"0"` не є порожнім), перетворюються на `true` у логічному контексті.
Ми можемо запустити і перевірити:
diff --git a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2.svg b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2.svg
index 25dc2744d..9761e8741 100644
--- a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2.svg
+++ b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html
index a1515a035..dfc443db2 100644
--- a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html
+++ b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html
@@ -5,12 +5,12 @@
diff --git a/1-js/02-first-steps/10-ifelse/2-check-standard/task.md b/1-js/02-first-steps/10-ifelse/2-check-standard/task.md
index 1d5787223..a5fc18bf4 100644
--- a/1-js/02-first-steps/10-ifelse/2-check-standard/task.md
+++ b/1-js/02-first-steps/10-ifelse/2-check-standard/task.md
@@ -2,11 +2,11 @@ importance: 2
---
-# Ім'я JavaScript
+# Назва JavaScript
-Використовуючи конструкцію `if..else`, напишіть код, що запитує: 'Яке "офіційне" ім'я JavaScript?'
+Використовуючи конструкцію `if..else`, напишіть код, що запитує: 'Яка "офіційна" назва JavaScript?'
-Якщо відвідувач вводить "ECMAScript", виведіть "Правильно!", у іншому випадку -- виведіть: "Не знаєте? ECMAScript!"
+Якщо відвідувач вводить "ECMAScript", виведіть "Правильно!", в іншому випадку -- виведіть: "Не знаєте? ECMAScript!"

diff --git a/1-js/02-first-steps/10-ifelse/5-rewrite-if-question/solution.md b/1-js/02-first-steps/10-ifelse/4-rewrite-if-question/solution.md
similarity index 100%
rename from 1-js/02-first-steps/10-ifelse/5-rewrite-if-question/solution.md
rename to 1-js/02-first-steps/10-ifelse/4-rewrite-if-question/solution.md
diff --git a/1-js/02-first-steps/10-ifelse/5-rewrite-if-question/task.md b/1-js/02-first-steps/10-ifelse/4-rewrite-if-question/task.md
similarity index 57%
rename from 1-js/02-first-steps/10-ifelse/5-rewrite-if-question/task.md
rename to 1-js/02-first-steps/10-ifelse/4-rewrite-if-question/task.md
index 38f686884..7aadb74d7 100644
--- a/1-js/02-first-steps/10-ifelse/5-rewrite-if-question/task.md
+++ b/1-js/02-first-steps/10-ifelse/4-rewrite-if-question/task.md
@@ -4,7 +4,7 @@ importance: 5
# Перепишіть 'if' на '?'
-Перепишіть цей `if`, використовуючи умовний оператор `'?'`:
+Перепишіть конструкцію `if`, використовуючи умовний оператор `'?'`:
```js
let result;
diff --git a/1-js/02-first-steps/10-ifelse/6-rewrite-if-else-question/solution.md b/1-js/02-first-steps/10-ifelse/5-rewrite-if-else-question/solution.md
similarity index 100%
rename from 1-js/02-first-steps/10-ifelse/6-rewrite-if-else-question/solution.md
rename to 1-js/02-first-steps/10-ifelse/5-rewrite-if-else-question/solution.md
diff --git a/1-js/02-first-steps/10-ifelse/6-rewrite-if-else-question/task.md b/1-js/02-first-steps/10-ifelse/5-rewrite-if-else-question/task.md
similarity index 100%
rename from 1-js/02-first-steps/10-ifelse/6-rewrite-if-else-question/task.md
rename to 1-js/02-first-steps/10-ifelse/5-rewrite-if-else-question/task.md
diff --git a/1-js/02-first-steps/10-ifelse/article.md b/1-js/02-first-steps/10-ifelse/article.md
index fade512b6..57fcc873c 100644
--- a/1-js/02-first-steps/10-ifelse/article.md
+++ b/1-js/02-first-steps/10-ifelse/article.md
@@ -2,25 +2,25 @@
Іноді нам потрібно виконувати різні дії на основі різних умов.
-Для цього ми можемо використовувати вираз `if` та умовний опертор `?`, що також називається оператором "знак питання".
+Для цього ми можемо використовувати інструкцію `if` та умовний оператор `?`, що також називається оператором "знак питання".
-## Вираз "if"
+## Інструкція "if"
-Вираз `if(...)` оцінює умову в дужках і, якщо результат умови `true`, виконує блок коду.
+Інструкція `if(...)` обчислює умову в дужках і, якщо результат умови `true`, виконує блок коду.
Наприклад:
```js run
-let year = prompt('У якому році була опублікована специфікація ECMAScript-2015?', '');
+let year = prompt('В якому році була опублікована специфікація ECMAScript-2015?', '');
*!*
if (year == 2015) alert( 'Ви маєте рацію!' );
*/!*
```
-У наведеному вище прикладі умовою є проста перевірка рівності (`year == 2015`), але вона може бути набагато складнішою.
+У наведеному вище прикладі умовою є проста перевірка рівності (`year == 2015`), але умова може бути набагато складнішою.
-Якщо ми хочемо виконати більше однієї операції, ми повинні загорнути блок коду у фігурні дужки:
+Якщо ми хочемо виконати більше однієї інструкції, ми повинні загорнути блок коду у фігурні дужки:
```js
if (year == 2015) {
@@ -29,26 +29,26 @@ if (year == 2015) {
}
```
-Ми рекомендуємо огортати блок коду фігурними дужками `{}` кожного разу, коли ви використовуєте оператор `if`, навіть якщо для виконання використовується одна операція. Це покращує читабельність.
+Ми рекомендуємо огортати блок коду фігурними дужками `{}` кожного разу, коли ви використовуєте інструкцію `if`, навіть якщо виконуватиметься лише одна операція. Це покращує читабельність.
## Булеве перетворення
-Оператор `if (…)` оцінює вираз у його дужках і перетворює результат у логічне значення.
+Інструкція `if (…)` обчислює вираз у дужках і перетворює результат у логічний тип.
Нагадаємо правила перетворення з розділу :
-- Число `0`, порожній рядок `""`, `null`, `undefined`, та `NaN` всі перетворюються на `false`. Через це їх називають "неправдивими" значеннями.
+- Число `0`, порожній рядок `""`, `null`, `undefined` та `NaN` перетворюються на `false`. Через це їх називають "хибними" ("falsy") значеннями.
- Інші значення перетворюються на `true`, тому їх називають "правдивими".
Отже, код ніколи не виконається за такої умови:
```js
-if (0) { // 0 є неправдивим
+if (0) { // 0 є хибним
...
}
```
-...а в середені цієї умови -- завжди буде виконуватися:
+...а всередині цієї умовної конструкції -- завжди буде виконуватися:
```js
if (1) { // 1 є правдивим
@@ -56,39 +56,39 @@ if (1) { // 1 є правдивим
}
```
-Ми також можемо передавати попередньо обчисленне значення до `if`, наприклад:
+Ми також можемо передавати попередньо обчислене значення до `if`, наприклад:
```js
-let cond = (year == 2015); // рівність обчислюється як true або false
+let condition = (year == 2015); // рівність обчислюється як true або false
-if (cond) {
+if (condition) {
...
}
```
-## Вираз "else"
+## Блок "else"
-Вираз `if` може містити не обов'язковий блок "else". Він виконується коли умова є неправдивою.
+Вираз `if` може містити необов'язковий блок "else" ("інакше"). Він виконується, коли умова є хибною.
Наприклад:
```js run
-let year = prompt('У якому році була опублікована специфікація ECMAScript-2015?', '');
+let year = prompt('В якому році була опублікована специфікація ECMAScript-2015?', '');
if (year == 2015) {
alert( 'Ви здогадалися правильно!' );
} else {
- alert( 'Як ви можете так помилятися?' ); // будь-яке значення окрім 2015
+ alert( 'Як ви можете так помилятися?' ); // будь-яке значення, окрім 2015
}
```
## Декілька умов: "else if"
-Іноді ми хотіли б перевірити кілька варіантів умов. Вираз `else if` дозволяє нам це зробити.
+Іноді ми хотіли б перевірити кілька варіантів умови. Блок `else if` дозволяє нам це зробити.
Наприклад:
```js run
-let year = prompt('У якому році була опублікована специфікація ECMAScript-2015?', '');
+let year = prompt('В якому році була опублікована специфікація ECMAScript-2015?', '');
if (year < 2015) {
alert( 'Зарано...' );
@@ -99,9 +99,9 @@ if (year < 2015) {
}
```
-У наведеному вище коді JavaScript спочатку перевіряє `year < 2015`. Якщо це не вірно вона переходить до наступної умови `year > 2015`. Якщо це також не правда вона показує останній `alert`.
+У наведеному вище коді JavaScript спочатку перевіряє `year < 2015`. Якщо це не вірно, перевіряється наступна умова `year > 2015`. Якщо це також неправда, показується останній `alert`.
-Може бути більше `else if` блоків. Останній `else` є необов'язковим.
+Може бути більше `else if` блоків. Останній блок `else` є необов'язковим.
## Умовний оператор '?'
@@ -133,7 +133,7 @@ alert(accessAllowed);
let result = умова ? значення1 : значення2;
```
-Обчислюється `умова`: якщо умова є правдивою, тоді повертається `значення1`, інакше -- `значення2`.
+Спочатку обчислюється `умова`: якщо вона є правдивою, тоді повертається `значення1`, інакше -- `значення2`.
Наприклад:
@@ -141,7 +141,7 @@ let result = умова ? значення1 : значення2;
let accessAllowed = (age > 18) ? true : false;
```
-Технічно ми можемо опускати дужки навколо `age > 18`. Оператор "знак питання" має низький пріоритет, тому він виконується після порівняння `>`.
+З технічного погляду, ми можемо пропускати дужки навколо `age > 18`. Оператор "знак питання" має низький пріоритет, тому він виконується після порівняння `>`.
Цей приклад робить теж саме, що і попередній:
@@ -154,10 +154,10 @@ let accessAllowed = age > 18 ? true : false;
Але дужки роблять код більш читабельним, тому ми рекомендуємо їх використовувати.
````smart
-У наведеному вище прикладі можно уникнути використання оператора "знака питання", оскільки само порівняння повертає `true/false`:
+У наведеному вище прикладі можна уникнути використання оператора "знак питання", оскільки само порівняння повертає `true/false`:
```js
-// теж саме
+// те ж саме
let accessAllowed = age > 18;
```
````
@@ -168,22 +168,22 @@ let accessAllowed = age > 18;
Наприклад:
```js run
-let age = prompt('age?', 18);
+let age = prompt('Вік?', 18);
let message = (age < 3) ? 'Привіт, крихітко!' :
(age < 18) ? 'Вітаю!' :
- (age < 100) ? 'Привітання!' :
+ (age < 100) ? 'Моє шанування!' :
'Який незвичайний вік!';
alert( message );
```
-Спочатку може бути важко зрозуміти, що відбувається. Але придивившись ближче ми можемо побачити, що це звичайна послідовність тестів:
+Спочатку може бути важко зрозуміти, що відбувається. Але, придивившись ближче, ми можемо побачити, що це звичайна послідовність перевірок:
-1. Перший "знак питання" перевіряє чи `age < 3`.
+1. Перший "знак питання" перевіряє, чи `age < 3`.
2. Якщо правда -- то повертає `'Привіт, крихітко!'`. У іншому випадку переходить до виразу після двокрапки '":"', перевіряючи `age < 18`.
-3. Якщо це правда -- то повертає `'Вітаю!'`. У іншому випадку переходить до виразу після наступної двокрапки '":"', перевіряючи `age < 100`.
-4. Якщо це правда -- то повертає `'Привітання!'`. У іншому випадку переходить до виразу після останньої двокрапки '":"', повертаючи `'Який незвичайний вік!'`.
+3. Якщо це правда -- то повертає `'Вітаю!'`. В іншому випадку переходить до виразу після наступної двокрапки '":"', перевіряючи `age < 100`.
+4. Якщо це правда -- то повертає `'Моє шанування!'`. У іншому випадку переходить до виразу після останньої двокрапки '":"', повертаючи `'Який незвичайний вік!'`.
Ось як це буде виглядати у випадку з використанням `if..else`:
@@ -193,7 +193,7 @@ if (age < 3) {
} else if (age < 18) {
message = 'Вітаю!';
} else if (age < 100) {
- message = 'Привітання!';
+ message = 'Моє шанування!';
} else {
message = 'Який незвичайний вік!';
}
@@ -201,7 +201,7 @@ if (age < 3) {
## Нетрадиційне використання '?'
-Іноді оператор знак питання `?` використовується як заміна `if`:
+Іноді оператор "знак питання" `?` використовується як заміна `if`:
```js run no-beautify
let company = prompt('Яка компанія створила JavaScript?', '');
@@ -212,15 +212,15 @@ let company = prompt('Яка компанія створила JavaScript?', '')
*/!*
```
-Залежно від умови `company == 'Netscape'`, буде виконано або перший або другий вираз після `?` і показано повідомлення.
+Залежно від умови `company == 'Netscape'`, буде виконано або перший, або другий вираз після `?` і показано повідомлення.
-Тут ми не присвоюємо результат змінній. Замість цього виконуємо інший код залежно від умови.
+Тут ми не присвоюємо результат змінній. Замість цього ми виконуємо різний код залежно від умови.
-**Не рекомендується використовувати оператор "знака питання" таким чином.**
+**Не рекомендується використовувати оператор "знак питання" таким чином.**
-Запис коротше, ніж еквівалентний вираз `if`, що приваблює деяких програмістів. Але він менш читабельний.
+Запис є коротшим, ніж еквівалентна інструкція `if`, що приваблює деяких програмістів. Але він менш читабельний.
-Ось такий самий код, використовуючи `if` для порівняння:
+Ось такий самий код, що використовує `if` для порівняння:
```js run no-beautify
let company = prompt('Яка компанія створила JavaScript?', '');
@@ -236,4 +236,4 @@ if (company == 'Netscape') {
Наші очі сканують код по вертикалі. Блоки коду, що охоплюють кілька рядків, легше зрозуміти, ніж довгий горизонтальний набір інструкцій.
-Мета оператора знака питання `?` полягає в поверненні одного або іншого значення в залежності від його умови. Будь ласка, використовуйте його саме для цього. Використовуйте `if`, коли вам потрібно виконати різні гілки коду.
+Мета оператора "знак питання" `?` полягає в поверненні одного або іншого значення в залежності від умови. Будь ласка, використовуйте його саме для цього. Використовуйте `if`, коли вам потрібно виконати різні гілки коду.