Condicionales en JavaScript
#!/usr/bin/nodejs
const n = 42;
const rl = require ( 'readline').createInterface ( {
input: process.stdin,
output: process.stdout,
});
rl.question ("Adivina en que número estoy pensando ? ", (val) => {
rl.close();
let v = Number(val);
if (v < 0) {
console.log ("Solo números positivos\n");
return;
}
if (v == n) console.log ("Bien Hecho!");
else {
console.log ("Sigue probando!");
console.log ("El número es "+ ((v < n) ? "MAYOR" : "MENOR"));
process.stdout.write ("Pista : ");
let h = (v > n) ? v-n : n-v;
if (h < 5) console.log (" TE QUEMAS!");
else if (h < 10) console.log (" CALIENTE");
else if (h < 15) console.log (" TEMPLADO");
else console.log (" FRIO");
}
});Dejando a un lado el uso de readline para poder leer
entrada de la consola, algo para lo que Javascript no fué pensado, y
respecto de las comparaciones, JavaScript nos ofrece un interface estilo
C estándar con bloques if -- else y el operador ternario
?:.
SOY NOVATO
Javascript, nos deja declarar variables utilizando las palabras clave
letyvar. La primera declara una variable local al bloque de código en el que se declara (scope), mientras quevardeclara una variable disponible en la funcion en la que es declarada. Una variable declara sinvaroletse considera una variable global, independientemente de donde haya sido declarada.
Javascript también ofrece una instrucción switch
siguiendo el formato del lenguaje C. En realidad, es idéntica a la que
utiliza PHP, puesto que nos permite utilizar también cadenas de
caracteres en los casos. Javascript, de hecho, al tratarse de un
lenguaje altamente dinámico nos permite poner lo que queramos en
prácticamente cualquier parte, lo que incluye los casos de
switch. Lo único que tenemos que tener en cuenta es el tipo
de la variable que pasamos a switch ya que esto determinará
como se evaluarán las expresiones. Un error común es utilizar una
variable entera para switch, pero luego utilizar
expresiones booleanas del tipo (x> 100) en el caso.
var x = 102
switch (x) {
case 0:
console.log ("Cero");
break;
case 1:
case 2:
console.log ("Uno o dos");
break;
case ( (x> 100) ? x : null):
console.log ("Valor mayor que 100");
break;
default:
console.log ("Me da igual");
}Al igual que en la mayoría de los lenguajes que soportan
switch en JavaScript podemos utilizar las instrucciones
break y el caso especial default. La primera
permite dejar el bloque switch y la debemos utilizar en
cada caso si no queremos que la ejecución continue en el siguiente caso
definido. El caso especial default se ejecutará si ninguno
de los otros casos se activa.
Al igual que sucede en otros lenguajes, la instrucción
switch se puede utilizar como un bloque de
if-else encadenados de la siguiente forma:
switch (true) {
case h < 5:
console.log ("TE QUEMAS!!!");
break;
case h < 10:
console.log ("CALENTITO!!!");
break;
case h < 15:
console.log ("TEMPLADO");
break
default:
console.log ("FRIO");
}Javascript soporta nativamente tipos booleanos con valores
true y false. JavaScript considera cualquier
cosa con valor un true cuando se utiliza en una
comparación, y cualquier cosa sin valor un false. Por
ejemplo, un entero con valor 0, una cadena vacía, un objeto nulo o un
NaN se consideran valores false.
Finalmente, Javascript nos permite definir constantes usando la
palabra clave const. Las variables const en
Javascript deben ser asignadas cuando se definen y no pueden se pueden
volver a declarar.
Resumen
- Soporta
if ... [else if] ...[else] ... - No soporta forma reducida de
if - Soporta operador terciario
if asignacion; condicion {cmd} - Soporta booleanos:
Booleancon valorestrue/false - Soporta
switch - Soporta constantes nativamente (
const CONSTANTE = val)
■
