freeCodeCamp/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/debugging/catch-use-of-assignment-operator-instead-of-equality-operator.russian.md

3.7 KiB
Raw Blame History

id, title, challengeType, forumTopicId, localeTitle
id title challengeType forumTopicId localeTitle
587d7b85367417b2b2512b38 Catch Use of Assignment Operator Instead of Equality Operator 1 301191 Поймать использование оператора присваивания вместо оператора равенства

Description

Ветвящиеся программы, то есть те, которые выполняют разные вещи, если выполняются определенные условия, полагаются на if , else if и else в JavaScript. Условие иногда принимает форму проверки того, равен ли результат равному значению. Эта логика произносится (по крайней мере, на английском языке) как «если x равно y, тогда ...», которая может буквально перевести на код с помощью оператора = или присваивания. Это приводит к непредвиденному потоку управления в вашей программе. Как описано в предыдущих задачах, оператор присваивания ( = ) в JavaScript присваивает значение имени переменной. И операторы == и === проверяют равенство (тройные === тесты для строгого равенства, что означает как значение, так и тип). Приведенный ниже код присваивает x равному 2, который оценивается как true . Почти каждое значение само по себе в JavaScript оценивается как true , кроме тех, которые известны как «ложные» значения: false , 0 , "" (пустая строка), NaN , undefined и null .
пусть x = 1;
пусть у = 2;
если (x = y) {
// этот кодовый блок будет выполняться для любого значения y (если y изначально не было установлено как ложь)
} else {
// этот блок кода - это то, что должно выполняться (но не будет) в этом примере
}

Instructions

Исправьте условие, чтобы программа выполняла правильную ветвь, и соответствующее значение присваивается result .

Tests

tests:
  - text: Your code should fix the condition so it checks for equality, instead of using assignment.
    testString: assert(result == "Not equal!");
  - text: The condition can use either <code>==</code> or <code>===</code> to test for equality.
    testString: assert(code.match(/x\s*?===?\s*?y/g));

Challenge Seed

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

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

console.log(result);

Solution

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

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

console.log(result);