Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/debugging/catch-use-of-assignment-operator-instead-of-equality-operator.md
freeCodeCamp's Camper Bot e6b05ee25d chore(i18n,learn): processed translations (#54537)
Co-authored-by: Naomi <nhcarrigan@gmail.com>
2024-04-26 12:26:37 +07:00

3.2 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b85367417b2b2512b38 Використання оператора присвоєння замість оператора рівності 1 301191 catch-use-of-assignment-operator-instead-of-equality-operator

--description--

Програми з розгалуженням (тобто програми, які виконують різні дії, якщо виконана певна умова) опираються на інструкції if, else if та else у JavaScript. Іноді умовою є перевірка того, чи результат дорівнює значенню.

Ця логіка формулюється як «якщо x дорівнює y, то...», що буквально можна перекласти в код за допомогою =, або оператора присвоєння. Це призводить до неочікуваного керування потоком у вашій програмі.

У попередніх завданнях зазначено, що оператор присвоєння у JavaScript (=) присвоює значення до назв змінних. А оператори == та === перевіряють рівність (потрійний === перевіряє строгу рівність, тобто значення та тип однакові).

Нижченаведений код присвоює значення 2 до x, що оцінюватиметься як true. Майже кожне значення у JavaScript оцінюється як true, за винятком деяких випадків, які відомі як «хибні» значення: false, 0, "" (пустий рядок), NaN, undefined та null.

let x = 1;
let y = 2;
if (x = y) {

} else {

}

У цьому прикладі блок коду в інструкції if виконується для будь-якого значення y, якщо y не є хибним. Блок else, який, як ми очікуємо, буде виконано, насправді не запуститься.

--instructions--

Виправте умову таким чином, щоб програма виконувалася у правій гілці, а до result було присвоєно відповідне значення.

--hints--

Код повинен виправити умову так, щоб вона перевіряла рівність, а не використовувала присвоєння.

assert(result == 'Not equal!');

Умова повинна використовувати == або ===, щоб перевірити рівність.

assert(__helpers.removeJSComments(code).match(/x\s*?===?\s*?y/g));

--seed--

--seed-contents--

let x = 7;
let y = 9;
let result = "to come";

if(x = y) {
  result = "Equal!";
} else {
  result = "Not equal!";
}

console.log(result);

--solutions--

let x = 7;
let y = 9;
let result = "to come";

if(x === y) {
 result = "Equal!";
} else {
 result = "Not equal!";
}

console.log(result);