From 6c87cb98984192d57e8e39c7f99e55e2437fe95c Mon Sep 17 00:00:00 2001 From: Vse Mozhe Buty Date: Wed, 16 Sep 2020 03:14:09 +0300 Subject: [PATCH 1/4] Fix possible typos, inaccuracies, omissions in 1.2.8 --- .../solution.md | 6 +- .../08-operators/4-fix-prompt/solution.md | 24 ++-- .../08-operators/4-fix-prompt/task.md | 12 +- 1-js/02-first-steps/08-operators/article.md | 122 +++++++++--------- 4 files changed, 82 insertions(+), 82 deletions(-) diff --git a/1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md b/1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md index ccd0c1158..f1435e936 100644 --- a/1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md +++ b/1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md @@ -17,10 +17,10 @@ undefined + 1 = NaN // (6) " \t \n" - 2 = -2 // (7) ``` -1. Додавання пустого рядка `""` до `1` перетворює число `1` на рядок: `"" + 1 = "1"`; далі ми маємо `"1" + 0`, в якому застосовується те ж саме правило. +1. Додавання пустого рядка `""` до `1` перетворює число `1` на рядок: `"" + 1 = "1"`; далі ми маємо `"1" + 0`, де застосовується те ж саме правило. 2. Віднімання `-` (як і більшість математичних операцій) працює тільки з числами, воно перетворює порожній рядок `""` на `0`. 3. Додавання з рядком додає число `5` до рядка. -4. Віднімання завжди перетворює рядки на числа, тому рядок `" -9 "` перетвориться на число `-9` (ігноруючи пробіли навколо нього). +4. Віднімання завжди перетворює на числа, тому рядок `" -9 "` перетвориться на число `-9` (ігноруючи пробіли навколо нього). 5. `null` стає `0` після числового перетворення. 6. `undefined` стає `NaN` після числового перетворення. -7. Символи пробілів по краях рядка ігноруються під час перетворення в число. Тому рядок, який містить лише символи `\t`, `\n`, або «звичайні» пробіли, прирівнюється до пустого рядка і стає `0` після числового перетворення. +7. Символи пробілів по краях рядка ігноруються під час перетворення в число. Тому рядок, який містить лише символи `\t`, `\n` або «звичайні» пробіли, прирівнюється до пустого рядка і стає `0` після числового перетворення. diff --git a/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md b/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md index 04f73fbd0..5ee619c0b 100644 --- a/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md +++ b/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md @@ -1,32 +1,32 @@ -The reason is that prompt returns user input as a string. +Причина в тому, що вікно запиту повертає ввід користувача як рядок. -So variables have values `"1"` and `"2"` respectively. +Отже змінні отримують значення `"1"` і `"2"` відповідно. ```js run -let a = "1"; // prompt("First number?", 1); -let b = "2"; // prompt("Second number?", 2); +let a = "1"; // prompt("Перше число?", 1); +let b = "2"; // prompt("Друге число?", 2); alert(a + b); // 12 ``` -What we should to is to convert strings to numbers before `+`. For example, using `Number()` or prepending them with `+`. +Нам треба перетворити рядки на числа перед застосуванням оператора `+`. Наприклад, за допомогою `Number()` або вставлення `+` перед ними. -For example, right before `prompt`: +Вставити `+` можна безпосередньо перед `prompt`: ```js run -let a = +prompt("First number?", 1); -let b = +prompt("Second number?", 2); +let a = +prompt("Перше число?", 1); +let b = +prompt("Друге число?", 2); alert(a + b); // 3 ``` -Or in the `alert`: +Або всередині `alert`: ```js run -let a = prompt("First number?", 1); -let b = prompt("Second number?", 2); +let a = prompt("Перше число?", 1); +let b = prompt("Друге число?", 2); alert(+a + +b); // 3 ``` -Using both unary and binary `+` in the latest code. Looks funny, doesn't it? +В останньому варіанті унарний і бінарний `+` використовуються разом. Виглядає химерно, чи не так? diff --git a/1-js/02-first-steps/08-operators/4-fix-prompt/task.md b/1-js/02-first-steps/08-operators/4-fix-prompt/task.md index b3ea4a3a3..4613abe24 100644 --- a/1-js/02-first-steps/08-operators/4-fix-prompt/task.md +++ b/1-js/02-first-steps/08-operators/4-fix-prompt/task.md @@ -2,17 +2,17 @@ importance: 5 --- -# Fix the addition +# Виправте додавання -Here's a code that asks the user for two numbers and shows their sum. +Нижче наведено код, що просить користувача ввести два числа і відображає їх суму. -It works incorrectly. The output in the example below is `12` (for default prompt values). +Він працює невірно. Код в прикладі виводить `12` (для початкових значень в полях уводу). -Why? Fix it. The result should be `3`. +В чому помилка? Виправте її. Результат повинен бути `3`. ```js run -let a = prompt("First number?", 1); -let b = prompt("Second number?", 2); +let a = prompt("Перше число?", 1); +let b = prompt("Друге число?", 2); alert(a + b); // 12 ``` diff --git a/1-js/02-first-steps/08-operators/article.md b/1-js/02-first-steps/08-operators/article.md index 30c218457..7bab23da7 100644 --- a/1-js/02-first-steps/08-operators/article.md +++ b/1-js/02-first-steps/08-operators/article.md @@ -1,6 +1,6 @@ # Базові оператори, математика -Зі шкільної програми, ми знаємо багато арифметичний операцій, такі як додавання `+`, множення `*`, віднімання `-`, тощо. +Зі шкільної програми, ми знаємо багато арифметичний операцій, такі як додавання `+`, множення `*`, віднімання `-` тощо. У цьому розділі ми почнемо з простих операторів, потім зосередимося на специфічних для JavaScript аспектах, які не охоплені шкільною арифметикою. @@ -8,7 +8,7 @@ Перш ніж ми почнемо, давайте розберемо певну загальну термінологію. -- *Операнд* -- це те, до чого затосовуються оператори. Наприклад, у множенні `5 * 2` є два операнди: лівий операнд `5` і правий операнд `2`. Іноді люди називають їх "аргументами", а не "операндами". +- *Операнд* -- це те, до чого заcтосовуються оператори. Наприклад, у множенні `5 * 2` є два операнди: лівий операнд `5` і правий операнд `2`. Іноді їх називають "аргументами", а не "операндами". - Оператор є *унарним*, якщо він має один операнд. Наприклад, унарне заперечення `-` змінює знак числа: ```js run @@ -19,14 +19,14 @@ */!* alert( x ); // -1, було застосоване унарне заперечення ``` -- Оператор є *бінарним*, якщо він має два операнди. Цей мінус існує також в бінарній формі: +- Оператор є *бінарним*, якщо він має два операнди. Цей же мінус існує також в бінарній формі: ```js run no-beautify let x = 1, y = 3; alert( y - x ); // 2, бінарний мінус віднімає значення ``` - Формально, в прикладі вище, ми маємо два різні оператори, які позначаються однаковим символом: оператор заперечення – унарний оператор, який змінює знак числа, та оператор віднімання – бінарний оператор, який віднімає одне число від іншого. + Формально, в прикладах вище ми маємо два різні оператори, які позначаються однаковим символом: оператор заперечення – унарний оператор, який змінює знак числа, та оператор віднімання – бінарний оператор, який віднімає одне число від іншого. ## Математика @@ -39,19 +39,19 @@ JavaScript підтримує такі математичні операції: - Остача від ділення `%`, - Піднесення до степеня (експоненція) `**`. -Перші чотири операції зрозумілі, а от про `%` та `**` потрібно розказати декілька слів. +Перші чотири операції зрозумілі, а от про `%` та `**` потрібно сказати декілька слів. ### Остача від ділення % Оператор остачі `%`, незважаючи на свій зовнішній вигляд, не пов'язаний з відсотками. -Результатом `a % b` є [остача](https://uk.wikipedia.org/wiki/Остача) цілочисельного ділення `a` на `b`. +Результатом `a % b` є [остача](https://uk.wikipedia.org/wiki/Остача) цілочислового ділення `a` на `b`. Наприклад: ```js run -alert( 5 % 2 ); // 1 — остача від 5 поділеного на 2 -alert( 8 % 3 ); // 2 — остача від 8 поділеного на 3 +alert( 5 % 2 ); // 1 — остача від ділення 5 на 2 +alert( 8 % 3 ); // 2 — остача від ділення 8 на 3 ``` ### Піднесення до степеня (експоненція) ** @@ -69,18 +69,18 @@ alert( 2 ** 4 ); // 16 (2 * 2 * 2 * 2, 4 рази) Математично, піднести до степеня також можна дробові числа. Наприклад, квадратний корінь це піднесення до степеня `1/2`: ```js run -alert( 4 ** (1/2) ); // 2 (степінь 1/2 — це теж саме, що квадратний корінь, це математика) +alert( 4 ** (1/2) ); // 2 (степінь 1/2 — це теж саме, що квадратний корінь) alert( 8 ** (1/3) ); // 2 (степінь 1/3 — це теж саме, що кубічний корінь) ``` ## Об'єднання рядків через бінарний + -Розглянемо особливості JavaScript операторів, які виходять за межі шкільної арифметики. +Розглянемо особливості операторів JavaScript, які виходять за межі шкільної арифметики. -Зазвичай оператор плюс `+` підсумовує числа. +Зазвичай оператор плюс `+` додає числа. -Але, якщо бінарний `+` застосовується до рядків, він об'єднує їх: +Але якщо бінарний `+` застосовується до рядків, він об'єднує їх: ```js let s = "мій" + "рядок"; @@ -96,7 +96,7 @@ alert( '1' + 2 ); // "12" alert( 2 + '1' ); // "21" ``` -Бачите, не має значення, чи перший операнд є рядком чи другий. +Бачите, не має значення, чи перший операнд є рядком, чи другий. Ось складніший приклад: @@ -111,20 +111,20 @@ alert(2 + 2 + '1' ); // "41", а не "221" Ось приклад, як працює віднімання й ділення: ```js run -alert( 6 - '2' ); // 4, перетворює '2' на число -alert( '6' / '2' ); // 3, перетворює обидва операнди на числа +alert( 6 - '2' ); // 4, '2' перетворюється на число +alert( '6' / '2' ); // 3, обидва операнди перетворюються на числа ``` ## Числове перетворення, унарний + -Плюс `+` існує у двох формах: бінарна форма, яку ми використовували вище та унарна форма. +Плюс `+` існує у двох формах: бінарна форма, яку ми використовували вище, та унарна форма. Унарний плюс або, іншими словами, оператор плюс `+`, застосований до єдиного операнда, нічого не зробить, якщо операнд є числом. Але якщо операнд не є числом, унарний плюс перетворить його на число. Наприклад: ```js run -// Нема ніякого впилу на числа +// Нема ніякого впливу на числа let x = 1; alert( +x ); // 1 @@ -132,7 +132,7 @@ let y = -2; alert( +y ); // -2 *!* -// Перетворює не числові значення +// Перетворює нечислові значення alert( +true ); // 1 alert( +"" ); // 0 */!* @@ -151,14 +151,14 @@ let oranges = "3"; alert( apples + oranges ); // "23", бінарний плюс об'єднує рядки ``` -Якщо ми хочемо розглядати їх як числа, нам потрібно конвертувати, а потім підсумувати їх: +Якщо ми хочемо використовувати їх як числа, нам потрібно конвертувати, а потім підсумувати їх: ```js run let apples = "2"; let oranges = "3"; *!* -// обидва значення перетворюються на числа перед застосування бінарного плюса +// обидва значення перетворюються на числа перед застосуванням бінарного плюса alert( +apples + +oranges ); // 5 */!* @@ -166,13 +166,13 @@ alert( +apples + +oranges ); // 5 // alert( Number(apples) + Number(oranges) ); // 5 ``` -З точки зору математики, надмірні плюси можуть здатися дивними. Але з точки зору програміста, немає нічого особливого: спочатку застосовується унарні плюси, вони перетворюють рядки на числа, а потім бінарний плюс підсумовує їх. +З погляду математика надмірні плюси можуть здатися дивними. Але з погляду програміста тут немає нічого особливого: спочатку застосовуються унарні плюси, вони перетворюють рядки на числа, а потім бінарний плюс підсумовує їх. -Чому унарні плюси застосовуються до значень перед бінарними плюсами? Як ми побачимо далі, це пов'язано з їх *більш високим пріоритетом*. +Чому унарні плюси застосовуються до значень перед бінарними плюсами? Як ми побачимо далі, це пов'язано з їх *вищим пріоритетом*. ## Пріоритет оператора -Якщо вираз має більше одного оператора, порядок виконання визначається їх *пріоритетом*, або, іншими словами, типовим порядком пріоритетів операторів. +Якщо вираз має більше одного оператора, порядок виконання визначається їх *пріоритетом*, або, іншими словами, типовим порядком першості операторів. Зі школи ми всі знаємо, що множення у виразі `1 + 2 * 2` повинно бути обчислене перед додаванням. Саме це і є пріоритетом. Кажуть, що множення має *вищий пріоритет*, ніж додавання. @@ -180,7 +180,7 @@ alert( +apples + +oranges ); // 5 У JavaScript є багато операторів. Кожен оператор має відповідний номер пріоритету. Першим виконується той оператор, який має найбільший номер пріоритету. Якщо пріоритет є однаковим, порядок виконання — зліва направо. -Ось витяг із [таблиці пріоритетів](https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence) (вам не потрібно це запам'ятовувати, але зверніть увагу, що унарні оператори мають вищий пріоритет за відповідні бінарні): +Ось витяг із [таблиці пріоритетів](https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Operators/Operator_Precedence) (вам не потрібно це запам'ятовувати, але зверніть увагу, що унарні оператори мають вищий пріоритет за відповідні бінарні): | Пріоритет | Ім'я | Знак | |------------|------|------| @@ -196,13 +196,13 @@ alert( +apples + +oranges ); // 5 | 3 | присвоєння | `=` | | ... | ... | ... | -Як ми бачемо, "унарний плюс" має пріоритет `17`, що вище за `13` — пріоритет "додавання" (бінарний плюс). Саме тому, у виразі `"+apples + +oranges"`, унарні плюси виконуються перед додаванням (бінарним плюсом). +Як ми бачимо, "унарний плюс" має пріоритет `17`, що вище за `13` — пріоритет "додавання" (бінарний плюс). Саме тому, у виразі `"+apples + +oranges"`, унарні плюси виконуються перед додаванням (бінарним плюсом). ## Присвоєння -Зазначемо, що присвоєння `=` також є оператором. Воно є в таблиці з пріоритетами і має дуже низький пріоритет `3`. +Зазначимо, що присвоєння `=` також є оператором. Воно є в таблиці з пріоритетами і має дуже низький пріоритет `3`. -Тому, коли ми присвоюємо значення змінній, наприклад, `x = 2 * 2 + 1`, спочатку виконуються обчислення, а потім виконується присвоєння `=`, зберігаючи результат у `x`. +Тому, коли ми присвоюємо значення змінній, наприклад, `x = 2 * 2 + 1`, спочатку виконуються обчислення, а потім виконується присвоєння `=` із збереженням результату в `x`. ```js let x = 2 * 2 + 1; @@ -232,9 +232,9 @@ alert( a ); // 3 alert( c ); // 0 ``` -У наведенному вище прикладі результат виразу `(a = b + 1)` є значенням, яке присвоювалося змінній `a` (тобто `3`). Потім воно використовується для подальших обчислень. +У наведеному вище прикладі результат виразу `(a = b + 1)` є значенням, яке присвоювалося змінній `a` (тобто `3`). Потім воно використовується для подальших обчислень. -Смішний код, чи не так? Ми повинні розуміти, як це працює, бо іноді ми бачимо подібне у JavaScript бібліотеках. +Чудернацький код, чи не так? Ми повинні розуміти, як це працює, бо іноді ми бачимо подібне у бібліотеках JavaScript. Однак, будь ласка, не пишіть свій код таким чином. Такі трюки, безумовно, не роблять код більш зрозумілим або читабельним. @@ -254,9 +254,9 @@ alert( b ); // 4 alert( c ); // 4 ``` -Ланцюгове присвоєння виконується справа наліво. Спочатку обчислюється самий правий вираз `2 + 2`, а потім присвоюється змінним ліворуч: `c`, `b` та `a`. В результаті всі змінні мають спільне значення. +Ланцюгове присвоєння виконується справа наліво. Спочатку обчислюється самий правий вираз `2 + 2`, а потім результат присвоюється змінним ліворуч: `c`, `b` та `a`. Зрештою всі змінні мають спільне значення. -Знову таки, щоб покращити читабельність коду, краще розділяти подібний код на декілька рядків: +Знову таки, щоб покращити читабельність коду, краще розділяти подібні конструкції на декілька рядків: ```js c = 2 + 2; @@ -281,29 +281,29 @@ n = n * 2; ```js run let n = 2; -n += 5; // тепер n = 7 (теж саме, що і n = n + 5) -n *= 2; // тепер n = 14 (теж саме, що і n = n * 2) +n += 5; // тепер n = 7 (те ж саме, що n = n + 5) +n *= 2; // тепер n = 14 (те ж саме, що n = n * 2) alert( n ); // 14 ``` -Короткий оператор "модифікувати та присвоїти" існує для всіх арифметичних та побітових операторів: `/=`, `-=`, тощо. +Короткі оператори "модифікувати та присвоїти" існують для всіх арифметичних та побітових операторів: `/=`, `-=` тощо. -Такі оператори мають таку ж перевагу, як і звичайне присвоєння, тому вони виконуються після більшості інших обчисленнь: +Ці оператори мають такий же пріоритет, як і звичайне присвоєння, тому вони виконуються після більшості інших обчислень: ```js run let n = 2; n *= 3 + 5; -alert( n ); // 16 (права частина обчислюється першою, так само, як і n *= 8) +alert( n ); // 16 (права частина обчислюється першою, так само, як n *= 8) ``` ## Інкремент/декремент - + -Збільшення або зменшення числа на одиницю є однією з найпоширеніших операцій. +Збільшення або зменшення на одиницю є однією з найпоширеніших числових операцій. Тому для цього існують спеціальні оператори: @@ -311,19 +311,19 @@ alert( n ); // 16 (права частина обчислюється перш ```js run no-beautify let counter = 2; - counter++; // працює так само, як counter = counter + 1, але коротше + counter++; // працює так само, як counter = counter + 1, але запис коротше alert( counter ); // 3 ``` - **Декремент** `--` зменшує змінну на 1: ```js run no-beautify let counter = 2; - counter--; // працює так само, як counter = counter - 1, але коротше + counter--; // працює так само, як counter = counter - 1, але запис коротше alert( counter ); // 1 ``` ```warn -Інкремент/декремент можуть застосовуватись лише до змінних. Спроба використати їх на значенні як `5++` дасть помилку. +Інкремент/декремент можуть застосовуватись лише до змінних. Спроба використати їх із значенням, як от `5++`, призведе до помилки. ``` Оператори `++` та `--` можуть розташовуватись до або після змінної. @@ -331,11 +331,11 @@ alert( n ); // 16 (права частина обчислюється перш - Коли оператор йде за змінною, він знаходиться у "постфіксній формі": `counter++`. - "Префіксна форма" – це коли оператор йде попереду змінної: `++counter`. -Обидві конструкції роблять те ж саме: збільшують `counter` на `1`. +Обидві ці інструкції роблять те ж саме: збільшують `counter` на `1`. -Чи є різниця? Так, але ми можемо побачити її якщо будемо використовувати повернене значення `++/--`. +Чи є різниця? Так, але ми можемо побачити її тільки при використанні значення, яке повертають `++/--`. -Давайте розберемось. Як відомо, усі оператори повертають значення. Інкремент/декремент не є винятком. Префіксна форма повертає нове значення, тоді як постфіксна форма повертає старе значення (до збільшення/зменшення). +Давайте розберемось. Як нам відомо, усі оператори повертають значення. Інкремент/декремент не є винятком. Префіксна форма повертає нове значення, тоді як постфіксна форма повертає старе значення (до збільшення/зменшення). Щоб побачити різницю, наведемо приклад: @@ -361,7 +361,7 @@ alert(a); // *!*1*/!* Підсумки: -- Якщо результат збільшення/зменшення не використовується, немає ніякої різниці яку форму використовувати: +- Якщо результат збільшення/зменшення не використовується, немає ніякої різниці, яку форму використовувати: ```js run let counter = 0; @@ -383,7 +383,7 @@ alert(a); // *!*1*/!* ``` ````smart header="Інкремент/декремент серед інших операторів" -Оператори `++/--` також можуть використовуватись всередені виразів. Їх пріоритет вищий за більшість інщих арифметичних операцій. +Оператори `++/--` також можуть використовуватись всередині виразів. Їх пріоритет вищий за більшість інших арифметичних операцій. Наприклад: @@ -392,16 +392,16 @@ let counter = 1; alert( 2 * ++counter ); // 4 ``` -Порівняйте із: +Порівняйте з: ```js run let counter = 1; alert( 2 * counter++ ); // 2, тому що counter++ повертає "старе" значення ``` -Не дивлячись на те, що з технічної точки зору це допустимо, таке використання робить код менш читабельним. Коли один рядок робить кілька речей -- це не добре. +Хоча з технічного погляду це допустимо, такий запис робить код менш читабельним. Коли один рядок робить кілька речей -- це не добре. -При читанні коду швидке "вертикальне" сканування оком може легко пропустити щось подібне до `counter++` і не буде очевидним, що змінна була збільшена. +При читанні коду швидке "вертикальне" сканування оком може легко пропустити щось подібне до `counter++`, і не буде очевидним, що змінна була збільшена. Ми рекомендуємо стиль "одна лінія -- одна дія": @@ -420,19 +420,19 @@ counter++; Список операторів: -- AND ( `&` ) -- OR ( `|` ) -- XOR ( `^` ) -- NOT ( `~` ) -- LEFT SHIFT ( `<<` ) -- RIGHT SHIFT ( `>>` ) -- ZERO-FILL RIGHT SHIFT ( `>>>` ) +- AND(і) ( `&` ) +- OR(або) ( `|` ) +- XOR(побітове виключне або) ( `^` ) +- NOT(ні) ( `~` ) +- LEFT SHIFT(зсув ліворуч) ( `<<` ) +- RIGHT SHIFT(зсув праворуч) ( `>>` ) +- ZERO-FILL RIGHT SHIFT(зсув праворуч із заповненням нулями) ( `>>>` ) -Ці оператори використовуються тоді, коли нам потрібно "возитися" з числами на дуже низькому (побітовому) рівні (тобто — вкрай рідко). Найближчим часом такі оператори нам не пригодяться, оскільки у веб-розробці вони майже не використовуються. Проте, в таких областях, як криптографія, вони корисні. Ви можете прочитати статтю [Bitwise Operators](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators) на MDN, якщо виникне потреба. +Ці оператори використовуються тоді, коли нам потрібно "возитися" з числами на дуже низькому (побітовому) рівні (тобто — вкрай рідко). Найближчим часом такі оператори нам не пригодяться, оскільки у веб-розробці вони майже не використовуються. Проте в таких областях, як криптографія, вони корисні. Ви можете прочитати [розділ про них](https://developer.mozilla.org/uk/docs/Web/JavaScript/Guide/Вирази_та_оператори#Бітові_оператори) на MDN, якщо виникне потреба. ## Кома -Оператор кома `,` є одним з найрідкіших та незвичайних операторів. Іноді використовується для написання більш короткого коду, тому нам потрібно знати його, щоб зрозуміти, що відбувається. +Оператор "кома" (`,`) незвичайний і застосовується дуже рідко. Іноді цей оператор використовують для написання більш короткого коду, тому нам потрібно знати його, щоб розуміти, що відбувається. Оператор кома дозволяє обчислити кілька виразів, розділивши їх комою `,`. Кожен з них обчислюється, але повертається тільки результат останнього. @@ -449,14 +449,14 @@ alert( a ); // 7 (результат обчислення 3 + 4) Тут обчислюється перший вираз `1 + 2` і його результат викидається. Потім обчислюється `3 + 4` і повертається як результат. ```smart header="Кома має дуже низький пріоритет" -Зверніть увагу, що оператор кома має дуже низький пріоритет, нижчий за `=`, тому дужки є важливими в наведеному вище прикладі. +Зверніть увагу, що оператор "кома" має дуже низький пріоритет, нижчий за `=`, тому дужки є важливими в наведеному вище прикладі. -Без дужок, в виразі `a = 1 + 2, 3 + 4` спочатку облислюються оператори `+`, підсумовуючи числа: у `a = 3, 7`; потім оператор присвоєння `=` присвоює `a = 3`, а решту (число `7` після коми) ігнорує. Це як записати вираз `(a = 1 + 2), 3 + 4`. +Без дужок, у виразі `a = 1 + 2, 3 + 4` спочатку обчислюються оператори `+`, підсумовуючи числа у `a = 3, 7`; потім оператор присвоєння `=` присвоює `a = 3`, а решта (число `7` після коми) ігнорується. Це як записати вираз `(a = 1 + 2), 3 + 4`. ``` Чому нам потрібен оператор, що викидає все, окрім останнього виразу? -Іноді люди використовують його в більш складних конструкціях, щоб помістити кілька дій в один рядок. +Іноді його використовують в більш складних конструкціях, щоб помістити кілька дій в один рядок. Наприклад: From 39d29435f6e73878000a77b19f6529115558b788 Mon Sep 17 00:00:00 2001 From: Taras Date: Wed, 16 Sep 2020 11:20:55 +0300 Subject: [PATCH 2/4] Update 1-js/02-first-steps/08-operators/4-fix-prompt/solution.md --- 1-js/02-first-steps/08-operators/4-fix-prompt/solution.md | 1 + 1 file changed, 1 insertion(+) diff --git a/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md b/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md index 5ee619c0b..0c755640c 100644 --- a/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md +++ b/1-js/02-first-steps/08-operators/4-fix-prompt/solution.md @@ -11,6 +11,7 @@ alert(a + b); // 12 Нам треба перетворити рядки на числа перед застосуванням оператора `+`. Наприклад, за допомогою `Number()` або вставлення `+` перед ними. + Вставити `+` можна безпосередньо перед `prompt`: ```js run From 66de3ed91b59d95da16702803ba25d4e69ca2754 Mon Sep 17 00:00:00 2001 From: Taras Date: Wed, 16 Sep 2020 11:21:06 +0300 Subject: [PATCH 3/4] Update 1-js/02-first-steps/08-operators/4-fix-prompt/task.md --- 1-js/02-first-steps/08-operators/4-fix-prompt/task.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/08-operators/4-fix-prompt/task.md b/1-js/02-first-steps/08-operators/4-fix-prompt/task.md index 4613abe24..ea0dacdc3 100644 --- a/1-js/02-first-steps/08-operators/4-fix-prompt/task.md +++ b/1-js/02-first-steps/08-operators/4-fix-prompt/task.md @@ -6,7 +6,7 @@ importance: 5 Нижче наведено код, що просить користувача ввести два числа і відображає їх суму. -Він працює невірно. Код в прикладі виводить `12` (для початкових значень в полях уводу). +Він працює невірно. Код в прикладі виводить `12` (для початкових значень в полях вводу). В чому помилка? Виправте її. Результат повинен бути `3`. From 6ae386ce860f9862eb21d4280da2b1928f92e12c Mon Sep 17 00:00:00 2001 From: Taras Date: Wed, 16 Sep 2020 11:21:14 +0300 Subject: [PATCH 4/4] Update 1-js/02-first-steps/08-operators/article.md --- 1-js/02-first-steps/08-operators/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-js/02-first-steps/08-operators/article.md b/1-js/02-first-steps/08-operators/article.md index 7bab23da7..960dcf8c4 100644 --- a/1-js/02-first-steps/08-operators/article.md +++ b/1-js/02-first-steps/08-operators/article.md @@ -432,7 +432,7 @@ counter++; ## Кома -Оператор "кома" (`,`) незвичайний і застосовується дуже рідко. Іноді цей оператор використовують для написання більш короткого коду, тому нам потрібно знати його, щоб розуміти, що відбувається. +Оператор "кома" (`,`) незвичайний і застосовується дуже рідко. Іноді цей оператор використовують для написання коротшого коду, тому нам потрібно знати його, щоб розуміти, що відбувається. Оператор кома дозволяє обчислити кілька виразів, розділивши їх комою `,`. Кожен з них обчислюється, але повертається тільки результат останнього.