Operadores de comparación
Clase 4 de 104 min de lectura
¿Es 5 mayor que 3? ¿Son iguales estos dos textos? Los operadores de comparación sirven para hacerle a JavaScript ese tipo de preguntas sobre dos valores, y la respuesta siempre es un booleano: true o false.
Los dos primeros te sonarán del colegio: > comprueba si un número es mayor que otro y < si es menor.
5 > 3true5 < 3falseSi además quieres dar por buena la igualdad, tienes >= (mayor o igual que) y <= (menor o igual que). Fíjate en lo que pasa cuando los dos números son el mismo:
5 >= 3 // -> true5 >= 5 // -> true5 <= 3 // -> false5 <= 5 // -> truePara saber si dos valores son iguales se usa el operador === y, para saber si son diferentes, el operador !==.
5 === 5 // -> true5 !== 5 // -> falseSí, son tres signos de igual. Al final de la clase te cuento por qué.
Comparando cadenas de texto
Los comparadores no son solo cosa de números. También funcionan con cadenas de texto y con otros tipos de datos.
'JavaScript' === 'JavaScript' // -> true'JavaScript' === 'Java' // -> false'JavaScript' !== 'PHP' // -> true`Estoy Aprendiendo JavaScript` === 'Estoy Aprendiendo JavaScript' // -> trueMira la última línea: una cadena usa acentos graves y la otra comillas simples, y aun así son iguales. Las comillas dan lo mismo, lo que importa es que el texto sea idéntico.
¿Y si usamos el operador > con cadenas de texto?
No es muy común, pero se puede: >, >=, < y <= también comparan cadenas de texto.
¿Y cómo decide JavaScript qué texto es «mayor»? Compara las cadenas según el valor de su código Unicode, un número que tiene asignado cada carácter. La letra A vale 65 y la B vale 66, así que A es menor que B.
'Alfa' > 'Beta' // -> false'Omega' > 'Beta' // -> true'alfa' > 'Alfa' // -> trueComparando booleanos
Los booleanos también se pueden comparar entre sí:
true === true // -> truetrue === false // -> falsefalse !== false // -> false¿Y con mayor o menor que (> y <)? No tiene mucho sentido compararlos así, pero por si te lo preguntas: true es mayor que false.
true > false // -> truefalse < true // -> truetrue > true // -> falsefalse < false // -> falsetrue es mayor que false.Comparando valores de diferentes tipos
Hasta aquí siempre hemos comparado valores del mismo tipo. ¿Qué pasa si comparas, por ejemplo, un número con una cadena de texto? En JavaScript es posible, pero no suele ser recomendable.
En clases posteriores veremos cómo funciona ese mecanismo y explicaremos el operador de igualdad débil == y el de desigualdad débil !=, que solo llevan dos signos. Por ahora nos quedamos con los de tres: la igualdad estricta === y la desigualdad estricta !==.
En resumen
- Los operadores de comparación comparan dos valores y siempre devuelven
trueofalse. >,<,>=y<=comprueban si un valor es mayor o menor que otro.===comprueba si dos valores son iguales y!==si son diferentes.- Las cadenas de texto se comparan por su código Unicode: las mayúsculas valen menos que las minúsculas.
- Por ahora, usa siempre
===y!==en lugar de==y!=.