freeCodeCamp/curriculum/challenges/russian/02-javascript-algorithms-an.../debugging/catch-use-of-assignment-ope...

3.9 KiB
Raw Blame History

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

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: 'Ваш код должен исправить условие, поэтому он проверяет равенство вместо использования назначения.'
    testString: 'assert(result == "Not equal!", "Your code should fix the condition so it checks for equality, instead of using assignment.");'
  - text: Условие может использовать либо <code>==</code> или <code>===</code> для проверки равенства.
    testString: 'assert(code.match(/x\s*?===?\s*?y/g), "The condition can use either <code>==</code> or <code>===</code> to test for equality.");'

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

// solution required