Operadores y decisiones
💡 🎯 Al terminar esta lección podrás…
- Elegir el operador correcto y preferir siempre
===. - Combinar condiciones con
&&,||y!. - Tomar decisiones con
if, ternario yswitch. - Escribir funciones que decidan y devuelvan un resultado.
1.Operadores
| Tipo | Operadores | Ejemplo |
|---|---|---|
| Aritméticos | + - * / % ** | 7 % 2 → 1 |
| Asignación | = += -= *= /= ++ -- | total += 5 (suma 5 a total) |
| Comparación | === !== > < >= <= | 3 > 2 → true |
| Lógicos | && (y) || (o) ! (no) | edad > 18 && tieneId |
| Nulo/indefinido | ?? (si es null o undefined) | nombre ?? "invitado" |
| Condicional | condición ? a : b | edad >= 18 ? "adulto" : "menor" |
2.Comparar valores: === y ==
Comparar es la base de las decisiones. Hay dos formas de preguntar «¿son iguales?», y una es mucho mejor:
| Operador | Nombre | Qué hace |
|---|---|---|
=== | Igualdad estricta | Compara el valor y el tipo. Úsala siempre |
== | Igualdad laxa | Convierte tipos antes de comparar: resultados sorprendentes |
!== | Desigualdad estricta | Lo contrario de === |
⚠️ Importante · Regla de oro
Usa siempre === y !==. == y != hacen conversiones que producen resultados difíciles de predecir y son fuente habitual de errores.
3.Operadores lógicos y valores «verdaderos»
| Operador | Se lee | Es verdadero cuando… |
|---|---|---|
a && b | a y b | ambos son verdaderos |
a || b | a o b | al menos uno es verdadero |
!a | no a | a es falso |
a | b | a && b | a || b |
|---|---|---|---|
true | true | true | true |
true | false | false | true |
false | true | false | true |
false | false | false | false |
Verdadero y falso («truthy» y «falsy»)
En una condición, JavaScript trata algunos valores como falsos aunque no sean false. Los valores falsos son solo estos seis: false, 0, "", null, undefined y NaN. Todo lo demás es verdadero.
📌 Nota · || frente a ??
a || b usa b si a es cualquier valor falso (incluido 0 o ""). a ?? b usa b solo si a es null o undefined. Para valores por defecto, ?? suele ser lo correcto.
4.Tomar decisiones: if, else if y else
if (condicion) {
// se ejecuta si la condición es verdadera
} else if (otraCondicion) {
// se ejecuta si la primera falló y esta es verdadera
} else {
// se ejecuta si ninguna fue verdadera
}
Cambia el valor de nota y observa qué mensaje aparece. Se evalúan las condiciones de arriba abajo y se ejecuta solo la primera que sea verdadera; por eso el orden importa.
Combinar condiciones
const edad = 20, tieneEntrada = true, esVip = false;
if (edad >= 18 && tieneEntrada) { console.log("Puede pasar"); }
if (esVip || edad >= 65) { console.log("Acceso preferente"); }
if (!tieneEntrada) { console.log("Debe comprar entrada"); }
5.El operador ternario y el cortocircuito
Cuando solo necesitas elegir entre dos valores, el operador ternario es más breve que un if:
const edad = 20;
const tipo = edad >= 18 ? "adulto" : "menor";
console.log(tipo); // "adulto"
console.log(`Tienes ${edad} años y eres ${edad >= 18 ? "mayor" : "menor"} de edad`);
💡 Consejo · Legibilidad primero
Usa el ternario para decisiones simples y de una línea. Si necesitas varias condiciones o varias líneas, un if es más claro. Evita anidar ternarios: son difíciles de leer.
6.switch: muchas opciones sobre un mismo valor
- Compara con
===el valor con cadacase. - Cada
casetermina conbreak; sin él, la ejecución «cae» al siguiente caso. defaultse ejecuta si ningún caso coincide.- Para pocas opciones,
if / else ifsuele bastar;switchbrilla con muchos valores concretos.
7.Decisiones dentro de funciones
Casi todas las decisiones viven dentro de funciones, que verás a fondo en la lección 5. Por ahora, lo básico: una función recibe valores, decide y devuelve un resultado con return.
📌 Nota · return termina la función
Cuando una función ejecuta return, sale inmediatamente. Por eso en categoriaEdad no hace falta else: si la edad es menor de 13 ya devolvió «niñez» y no sigue leyendo.
8.Errores frecuentes
- Usar
=en lugar de===en una condición:if (x = 5)asigna y siempre es verdadero. - Usar
==y llevarse conversiones sorpresa. - Condiciones en el orden equivocado:
nota >= 5antes denota >= 9captura todo. - Olvidar
breaken unswitch. - Comparar textos como si fueran números (
"10" < "9"estrue). - Usar
||para valores por defecto y descartar un0válido: usa??. - Anidar demasiados
if: usa retornos tempranos (if (!valido) return;). - Olvidar las llaves en un
ifcon varias instrucciones.
📒 Apuntes para llevar
- Los operadores aritméticos, de asignación (
+=,++), de comparación y lógicos son la base de toda decisión. - Usa siempre
===y!==, nunca==. &&= «y»,||= «o»,!= «no». Los valores falsos son solofalse,0,"",null,undefinedyNaN.??aplica un valor por defecto solo si el original esnulloundefined.if / else if / elseevalúa de arriba abajo y ejecuta solo la primera rama verdadera: el orden importa.- El ternario
cond ? a : bsirve para elegir entre dos valores en una línea. switchcompara un valor con varios casos; cada caso termina conbreak.returndevuelve un valor y termina la función al instante.
9.Glosario
| Término | Significado |
|---|---|
| Operador | Símbolo que realiza una operación (+, ===, &&). |
| Condición | Expresión que se evalúa como verdadera o falsa. |
| Booleano | Valor true o false. |
| Truthy / falsy | Valores que se comportan como verdadero o falso en una condición. |
| Igualdad estricta | ===: compara valor y tipo. |
| Ternario | Operador cond ? a : b que elige entre dos valores. |
| Cortocircuito | Evaluar solo lo necesario en && y ||. |
switch | Estructura que compara un valor con varios casos. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
¿Qué muestra console.log(5 === "5")?
=== compara también el tipo: número y texto son distintos.
¿Cuál de estos valores es verdadero en una condición?
El texto "0" no está vacío, así que es verdadero. Los falsos son false, 0, "", null, undefined y NaN.
const n = 0; console.log(n || 10) muestra…
0 es falso, así que || devuelve 10. Con ?? se mostraría 0.
Una cadena if / else if evalúa nota >= 5 antes que nota >= 9. ¿Qué problema hay?
Solo se ejecuta la primera rama verdadera: ordena de la condición más estricta a la más general.
Olvidas break en un case de un switch. ¿Qué pasa?
Sin break, la ejecución «cae» al caso siguiente.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.