Resumen de la Clase:
Comparaciones en JavaScript
Existen varias maneras de comparar variables u objetos dentro de javascript.
Existen cinco tipos de datos que son primitivos y es necesario comprender al momento de hacer comparaciones:
• Boolean
• Null
• Undefined
• Number
• String
<h4>Variables</h4>
En el primer ejemplo le asignamos a ‘x’ un valor numérico y a ‘y’ un string.
Para poder compararlos debemos agregar dos signos de igual “==”. Esto los convierte al mismo tipo de valor y permite que se puedan comparar.
var x = 4
var y = '4'
x == y
// true
Cuando realizamos operaciones es recomendable usar tres símbolos de igual (===). Esto permite que JavasScript no iguale las variables que son de distinto tipo.
*Sacha recomienda usa siempre el triple igual, pero hay controversia...
x === y
// false
<h4>Objetos</h4>
Al comparar objetos JS tiene en cuenta también el nombre del objeto, por lo tanto se remite a comparar el nombre de las variables a demás del valor de los atributos.
Con objetos literales desglosados (otroMas en este caso), pasa lo mismo y la comparación da false ya que lo que se genera es un nuevo objeto a partir del desglosado.
var sacha = {
nombre: 'Sacha'
}
var otro = {
nombre: 'Sacha'
}
var otroMas = {
...sacha
}
sacha == otro
// false
sacha === otro
// false
sacha == otroMas
// false
sacha === otroMas
// false
Si asignamos el valor del objeto a una variable y los comparamos, el doble y el triple igual darán como resultado ‘true’ ya que en este caso las dos variables estarían refiriendo al mismo espacio en la memoria RAM.
var otroMasTodavia = sacha
sacha == otroMasTodavia
// True
sacha === otroMasTodavia
// True
Otra cosa a tener en cuenta es que si cambiamos el valor del atributo en la variable, automáticamente cambia el valor del objeto también, por el mismo motivo que los operadores dan ‘true’, ambos refieren al mismo espacio en la memoria RAM.
otroMasTodavia.nombre = "Pepe"
otroMasTodavia.nombre
// "Pepe"
sacha.nombre
// "Pepe"
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?