Ejecución condicional: if, ‘?’
En programación, a menudo necesitamos ejecutar diferentes acciones según condiciones específicas. Para esto, podemos utilizar la declaración if y el operador ternario ?.
La declaración «if»
La declaración if(…) evalúa una condición dentro de paréntesis y ejecuta un bloque de código si esa condición es verdadera (true).
Por ejemplo:
let age = prompt('¿Qué edad tienes?', '');
if (age >= 18) {
alert( '¡Eres mayor de edad!' );
} else {
alert( 'Eres menor de edad.' );
}
Si queremos ejecutar más de una instrucción, es recomendable encerrar el bloque de código entre llaves {} para mejorar la legibilidad.
Conversión a Booleano
La declaración if(…) convierte automáticamente la expresión entre paréntesis a un valor booleano. Según las reglas de conversión:
- Valores como 0, «», null, undefined y NaN se convierten en false.
- Otros valores se convierten en true.
Por ejemplo:
if (0) { // 0 es falso
...
}
if (1) { // 1 es verdadero
...
}
También podemos asignar un valor booleano previamente evaluado a una variable:
let isOldEnough = (age >= 18); // devuelve true o false
if (isOldEnough) {
...
}
La cláusula «else»
La declaración if puede incluir una cláusula else opcional, que se ejecuta cuando la condición es falsa:
if (age >= 18) {
alert( 'Eres mayor de edad.' );
} else {
alert( 'Eres menor de edad.' );
}
Múltiples condiciones: «else if»
Para múltiples condiciones, podemos utilizar la cláusula else if:
if (age < 13) {
alert( 'Eres un niño.' );
} else if (age < 18) {
alert( 'Eres un adolescente.' );
} else {
alert( 'Eres adulto.' );
}
Operador ternario ‘?’
El operador ternario ? permite asignar un valor a una variable basado en una condición de manera más compacta:
let message = (age < 18) ? 'Eres menor de edad.' : 'Eres mayor de edad.';
Es una forma abreviada de escribir una estructura if…else. La expresión entre paréntesis se evalúa primero, y luego se devuelve value1 si la condición es verdadera, de lo contrario value2.
Múltiples operadores ‘?’:
Podemos encadenar múltiples operadores ternarios para condiciones más complejas:
let message = (age < 3) ? '¡Hola, bebé!' :
(age < 18) ? '¡Hola!' :
(age < 100) ? '¡Felicidades!' :
'¡Qué edad tan inusual!';
Esto permite evaluar varias condiciones secuencialmente y asignar un mensaje según la edad proporcionada.
Uso no convencional de ‘?’
A veces, el operador ? se utiliza para mostrar diferentes resultados según una condición, aunque esto no es recomendable para claridad:
let company = prompt('¿Qué compañía creó JavaScript?', '');
(company == 'Netscape') ?
alert('¡Correcto!') : alert('Incorrecto.');
Es preferible usar una estructura if…else para claridad y legibilidad
if (company == 'Netscape') {
alert('¡Correcto!');
} else {
alert('Incorrecto.');
}
Este enfoque es más fácil de entender al leer el código verticalmente y facilita la mantenibilidad del mismo.
Conclusión
La declaración if y el operador ternario son herramientas poderosas para controlar el flujo de ejecución en JavaScript, permitiendo ejecutar diferentes acciones según condiciones específicas de manera eficiente y legible.