Control
de flujo
Se consigue con las sentencias if...else
(bifurcación condicional) y switch (elección
múltiple).
if
(condición)
{
sentencias
}
else
{
sentencias alternativas
}
La
expresión "condición" debería
devolver true o false.
La
sentencia switch es equivalente a varios if...else anidados:
if
(condicion1)
{
}
else if (condicion2)
{
}
else if (condicion3)
{
}
Su
sintaxis es:
switch
(expresion)
{
case valor1:
sentencias 1
....
break;
case
valor2:
sentencias 2
....
break;
default:
sentencias por defecto
}
La palabra clave break permite salir del bloque switch
cuando se ejecutan las sentencias correspondientes al valor coincidente
con "expresion":
switch
(cadena)
{
case "rojo":
case "verde":
case "azul":
tipo_de_color = "primario";
break;
case
"negro":
tipo_de_color = "nulo";
break;
case
"blanco":
tipo_de_color = "blanco";
break;
default:
tipo_de_color = "composición";
}
Bucle FOR
La
sintaxis del bucle FOR es:
for
( [expresión inicial] ; [condición] ; [expresión
incremental] )
{
sentencias
...
}
Que
se leería como: "Partiendo del valor proporcionado por la
expresión inicial, ejecuta las sentencias contenidas en el bloque
mientras se cumpla la condición. En cada nueva iteración
ejecuta la expresión incremental".
El
funcionamiento interno sería:
1.-
Se ejecuta la expresión inicial.
2.- Se evalúa la condición. Si es true
continúa con el bloque de sentencias.
3.- Se ejecuta el bloque de sentencias.
4.- Se ejecuta la expresión incremental y se pasa al
punto 2.
Bucles
WHILE y DO ... WHILE
Sintaxis:
Las
sentencias del bucle while comienzan a ejecutarse sólo
si se cumple la condición inicialmente. El bucle acaba cuando
la condición deja de cumplirse.
Las
sentencias del bucle do...while se ejecutan al menos una vez.
El bucle termina cuando condición es false.
Recorrido de objetos, FOR ... IN
La
sentencia for...in se utiliza para recorrer los elementos o propiedades
de un objeto. La sintaxis es:
for
(variable in objeto)
{
sentencias;
}
Por
ejemplo, para un objeto de este tipo:
//
constructor
function objeto (color, forma, tamano)
{
this.color = color;
this.forma = forma;
this.tamano = tamano;
}
objeto
= new objeto2 ("azul", "esfera", 20);
for
(var x in objeto)
{
document.write (x+": "+objeto[x]+"<br>");
}
El
bucle recorrerá todas sus propiedades y las mostrará en
el documento.
Sentencia WITH
Permite
establecer un cualificador de alcance por defecto para acceder a las
propiedades de un objeto:
with
objeto
{
el_color = color;
la_forma = forma;
}
Las
sentencias equivalentes sin utilizar WITH:
el_color
= objeto.color;
la_forma = objeto.forma;