¿Qué son los condicionales?
Imagina que estás programando un sistema de recomendaciones para una tienda en línea. Cuando un cliente compra más de 100 dólares, quieres ofrecerle un descuento del 10%. Si compra más de 200 dólares, el descuento sube al 20%. Y si no llega a 100 dólares, simplemente le muestras el precio normal. ¿Cómo haces esto en código? Con los condicionales.
Los condicionales son estructuras de control que evalúan una expresión y, dependiendo de si es verdadera (true) o falsa (false), ejecutan un bloque de código u otro. En JavaScript, la estructura básica se compone de tres palabras clave: if, else if y else.
La estructura básica: if
El condicional if es la estructura más simple. Evalúa una condición entre paréntesis y, si es verdadera, ejecuta el bloque de código entre las llaves.
let edad = 18;
if (edad >= 18) {
console.log("Eres mayor de edad");
}
// Salida: "Eres mayor de edad"En este ejemplo, la condición edad >= 18 se evalúa como verdadera porque edad es 18, por lo tanto, el mensaje se imprime en la consola.
if, siempre debes escribir la condición entre paréntesis. El bloque de código a ejecutar va entre llaves { }. Si solo tienes una línea de código, las llaves son opcionales, pero es una buena práctica incluirlas siempre para mayor claridad.Manejando el caso contrario: else
¿Y qué pasa cuando la condición es falsa? Aquí entra en juego else. El bloque else se ejecuta únicamente cuando la condición del if es falsa.
let temperatura = 15;
if (temperatura > 30) {
console.log("Hace mucho calor");
} else {
console.log("El clima es agradable o frío");
}
// Salida: "El clima es agradable o frío"En este caso, como 15 no es mayor que 30, la condición es falsa, por lo que se ejecuta el bloque del else.
Evaluando múltiples condiciones: else if
A veces necesitas evaluar más de dos situaciones. Para eso existe else if, que te permite encadenar múltiples condiciones una tras otra.
let calificacion = 85;
if (calificacion >= 90) {
console.log("Excelente");
} else if (calificacion >= 80) {
console.log("Muy bien");
} else if (calificacion >= 70) {
console.log("Bien");
} else if (calificacion >= 60) {
console.log("Suficiente");
} else {
console.log("Necesitas mejorar");
}
// Salida: "Muy bien"Ejemplo práctico: Sistema de envío
Vamos a crear un ejemplo completo que simule un sistema de cálculo de costos de envío:
- Declaramos una variable para el total de la compra
- Evaluamos diferentes rangos de compra
- Aplicamos la lógica de envío correspondiente
let totalCompra = 150;
let costoEnvio;
if (totalCompra >= 200) {
costoEnvio = 0;
console.log("¡Envío gratis!");
} else if (totalCompra >= 100) {
costoEnvio = 5.99;
console.log("Envío reducido: $5.99");
} else {
costoEnvio = 12.99;
console.log("Envío estándar: $12.99");
}
console.log("Costo final: $" + (totalCompra + costoEnvio));
// Salida: "Envío reducido: $5.99"
// Salida: "Costo final: $155.99"else if como dos palabras separadas (elseif o else if con espacio extra). En JavaScript, debe ser exactamente else if (con espacio) o podrías obtener errores de sintaxis inesperados.Operadores de comparación
Para escribir condiciones efectivas, necesitas conocer los operadores de comparación disponibles en JavaScript:
| Operador | Significado | Ejemplo |
|---|---|---|
| === | Estrictamente igual (valor y tipo) | 5 === "5" es false |
| !== | Estrictamente diferente | 5 !== "5" es true |
| > | Mayor que | 10 > 5 es true |
| < | Menor que | 3 < 7 es true |
| >= | Mayor o igual que | 10 >= 10 es true |
| <= | Menor o igual que | 5 <= 5 es true |
=== (comparación estricta) en lugar de == (comparación débil). La comparación estricta verifica tanto el valor como el tipo de dato, evitando comportamientos inesperados.Condiciones compuestas con operadores lógicos
Puedes combinar múltiples condiciones usando operadores lógicos: && (AND), || (OR) y ! (NOT).
let edad = 25;
let tieneCredencial = true;
if (edad >= 18 && tieneCredencial) {
console.log("Puedes entrar al evento");
} else {
console.log("No cumples los requisitos");
}
// Salida: "Puedes entrar al evento"Ver más sobre operadores lógicosAND (&&): Todas las condiciones deben ser verdaderas para que el resultado sea verdadero.
OR (||): Al menos una condición debe ser verdadera para que el resultado sea verdadero.
NOT (!): Invierte el valor de la condición: true se convierte en false, y viceversa.
Anidamiento de condicionales
Puedes colocar condicionales dentro de otros condicionales. Esto se conoce como anidamiento y es útil para situaciones más complejas.
let usuario = {
nombre: "María",
esMiembro: true,
puntos: 450
};
if (usuario.esMiembro) {
console.log("Bienvenida, " + usuario.nombre);
if (usuario.puntos >= 500) {
console.log("Tienes acceso VIP");
} else {
console.log("Tienes acceso estándar");
}
} else {
console.log("Regístrate para obtener beneficios");
}
// Salida: "Bienvenida, María"
// Salida: "Tienes acceso estándar"El buen código no es solo el que funciona, sino el que otros pueden entender y mantener fácilmente.
El operador ternario: alternativa rápida
Para condiciones simples de una sola línea, JavaScript ofrece el operador ternario, una forma más compacta de escribir un if-else.
// Forma tradicional con if-else
let estado;
if (edad >= 18) {
estado = "adulto";
} else {
estado = "menor";
}
// Forma con operador ternario
let estado = (edad >= 18) ? "adulto" : "menor";
// La sintaxis es: condición ? valorSiVerdadero : valorSiFalsoComparación de estructuras
| Estructura | Uso | Mejor para |
|---|---|---|
| if | Una sola condición | Verificaciones simples |
| if...else | Dos caminos posibles | Sí o no, verdadero o falso |
| if...else if...else | Múltiples condiciones | Evaluación de rangos o múltiples casos |
| Operador ternario | Condición simple en una línea | Asignaciones rápidas |
if para condiciones simples, else if para múltiples evaluaciones y else para el caso por defecto cuando ninguna condición se cumple.Errores comunes que debes evitar
- Olvidar las llaves: Especialmente cuando agregas más líneas de código después, las llaves son cruciales.
- Confundir = con ===: Un solo = asigna valor, === compara. Este error puede causar bugs difíciles de detectar.
- Condiciones con efectos secundarios: Evita modificar variables dentro de las condiciones, esto hace el código confuso.
- Orden incorrecto: Recuerda que else if se evalúa en orden. Coloca las condiciones más específicas primero.
¿Qué se imprimirá en la consola con el siguiente código? let nivel = 75; if (nivel >= 90) { console.log("Experto"); } else if (nivel >= 70) { console.log("Avanzado"); } else { console.log("Principiante"); }
- A) Experto
- B) Avanzado
- C) Principiante