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

2.3 KiB

id title challengeType forumTopicId dashedName
587d7b85367417b2b2512b38 Captura el uso del operador de asignación en lugar del operador de igualdad 1 301191 catch-use-of-assignment-operator-instead-of-equality-operator

--description--

Los programas de bifurcación (branching), es decir, los que hacen cosas diferentes si se cumplen ciertas condiciones, se basan en las sentencias if, else if y else de JavaScript. La condición a veces toma la forma de probar si un resultado es igual a un valor.

Esta lógica se habla (en español, al menos) como "si x es igual a y, entonces...", lo que puede traducirse literalmente en código utilizando el =, u operador de asignación. Esto lleva a un flujo de control inesperado en tu programa.

Como hemos visto en desafíos anteriores, el operador de asignación (=) en JavaScript asigna un valor a una variable. Y los operadores == y === comprueban la igualdad (el triple === comprueba la igualdad estricta, lo que significa que tanto el valor como el tipo son iguales).

El código siguiente asigna a x el valor de 2, que se evalúa como true. Casi todos los valores por sí solos en JavaScript se evalúan como true, excepto lo que se conoce como valores "falsos" (falsy values): false, 0, "" (una cadena vacía), NaN, undefined, y null.

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

} else {

}

En este ejemplo, el bloque de código dentro de la sentencia if se ejecutará para cualquier valor de y, a menos que y sea algún valor falsy. El bloque else, que esperamos que se ejecute aquí, no se ejecutará realmente.

--instructions--

Corrige la condición para que el programa ejecute la rama correcta y se asigne el valor adecuado a result.

--hints--

Tu código debe corregir la condición para que compruebe igualdad, en lugar de utilizar asignación.

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

La condición debe utilizar == o === para comprobar igualdad.

assert(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);