Hacía tiempo que no escribía sobre errores clásicos de estudiantes de Javascript, pero esta semana no he podido por menos porque me he encontrado este error no una ni dos: tres veces.
Como ya se trabajé en la lección Javascript – #1.10. Operadores de comparación, a la hora de comparar dos valores podemos utilizar un doble o un triple igual.
En ningún caso debemos utilizar para comparar un signo igual.
Sobre este tema trabajamos en Javascript – #1.08. Operadores de asignación.
Y es que si utilizamos un único signo igual no estamos comparando, sino realizando una asignación, es decir, dándole un valor a una variable.
Veamos un ejemplo:
let x=5; // x toma el valor numérico 5
if (x=7) { console.log("La x vale " + x); }// Esta sentencia se ejecutará siempre ya que no comprueba si x es igual a 7, sino que le asigna a x el valor y, y devolverá un 7.
Por tanto, lo que deberíamos hacer en este caso sería lo siguiente:
let x=5; // x toma el valor numérico 5
if (x==7) { console.log("La x vale" + x); } // Esta sentencia no llegará a ejecutarse porque la x vale 5.
Recuerda que es muy importante asegurarnos de que cuando trabajamos con estructuras de control en las que se comprueba una condición (if, while, do while…), debemos realizar las comparaciones de igualdad con el doble o el triple igual; en ningún caso con un igual, ya que estaríamos asignando el valor en lugar de comparándolo.
¡Recuerda este error común en Javascript! ¡No es lo mismo utilizar un doble igual (comparación) que un igual (asignación)!
Tweet
Y tú, cuéntanos, ¿cuáles son tus errores de programación más comunes?
Carlos says
Lo que pasa que no es un igual. Es un operador de asignación. Por eso lo confunden.
Ada says
¡Eso es! Y no sabes la de veces que veo cosas como:
if (a = b) en lugar de if (a == b).