El operador == primero hace la conversión a un mismo tipo de dato
para verificar si son iguales, en cambio el operador === llamado
operador de igualdad estricta compara los valores sin hacer
conversiones. Esto hace que cuando utilizamos el operador === retorne
siempre false en caso que las variables que comparamos sean de distinto
tipo.
El siguiente if se verifica verdadero ya que con el operador ==
primero se transforman los dos valores al mismo tipo de datos previos a
verificar su igualdad:
var v1='55'; if (v1==55) document.write('son iguales');
En cambio el siguiente if utilizando el operador de igualdad estricta
se verifica false ya que son variables o valores de distinto tipo:
var v1='55'; if (v1===55) document.write('son iguales');
Los operadores != y !== son los opuestos de == y ===.
El operador != retorna true si son distintos previo conversión a un
mismo tipo de dato y el operador !== retorna true si los valores son
distintos sin hacer una conversión previa, teniendo en cuenta que para
tipos de datos distintos es true el valor retornado.
El siguiente if se verifica false:
var v1='55'; if (v1!=55) document.write('son distintos');
En cambio utilizando el operador !== se verifica verdadero ya que son tipos de datos desiguales:
var v1='55'; if (v1!==55) document.write('son distintos');
El operador de igualdad estricto === analiza los operandos de la siguiente forma:
- Si los dos valores son de diferente tipo luego el resultado es false.
- Si los dos valores almacen null luego el resultado es true. Lo mismo si los dos valores almacenan undefined.
- Si uno de los valores almacena el valor NaN luego la condición se verifica como false.
El operador de igualdad == analiza los operandos de la siguiente forma:
- Si los dos operandos no son del mismo tipo el operador == primero verifica si uno de los valores es null y el otro undefined luego retorna true, si uno es un número y el otro un string convierte a string el número y luego compara, si uno de los valores es true convierte este a 1 y luego compara, si uno de los valores es false convierte este a 0 (cero) y luego compara.
Algunas comparaciones:
if (true==1) //verdadero
if (true===1) //falso
if (false==0) //verdadero
if (false===0) //falso
No hay comentarios.:
Publicar un comentario