¿Cuál es la diferencia entre los operadores `=` y `==` y qué es `===`? (Sencillo, doble y triple igual)
He escrito algo de código y en ciertos lugares ==
se requiere y en otros =
se requiere. ¿Alguien puede explicar las diferencias o señalarme el recurso que puede hacerlo?
Ejemplo:
if($("#block").css.display == "none"){
$("#block").css.display = "block";
}
Lo único que se me ocurre es que en uno estoy cambiando y en el otro estoy revisando. Pero en ambos me refiero a la igualdad.
=
es el operador de asignación. Establece una variable (el lado izquierdo) a un valor (el lado derecho). El resultado es el valor del lado derecho.
==
es el operador de comparación. Solo regresará true
si ambos valores son equivalentes después de forzar sus tipos al mismo tipo.
===
Es un operador de comparación más estricto, a menudo llamado operador de identidad. Solo regresará true
si tanto el tipo como el valor de los operandos son iguales.
Consultaría CodeCademy para obtener una introducción rápida a JavaScript.
Si prefieres leer más, MDN también es una excelente introducción.
Para aquellos preocupados por el origen del término "operador de identidad", jbabey señaló que JavaScript: The Definitive Guide parece mencionarlo.
=
asigna un valor a una variable
==
comprueba si los dos parámetros son iguales entre sí
===
comprueba si los dos parámetros son iguales entre sí y si su tipo es el mismo
!
no operador
!=
comprueba si los dos parámetros no son iguales entre sí
!==
comprueba si los dos parámetros no son iguales entre sí o el tipo no es el mismo
uno mas
>
Comprueba si un parámetro es mayor que el otro.
>=
Comprueba si un parámetro es mayor o igual que el otro.
>==
NO EXISTE
etcétera...
== se utiliza para probar si el valor de la izquierda es igual al valor de la derecha.
= se utiliza para asignar el valor de la derecha a la variable de la izquierda.