Sentencias de control en JavaScript

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

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.

while (condición)
{
sentencias;

}

Las sentencias del bucle do…while se ejecutan al menos una vez. El bucle termina cuando condición es false.

do
{
sentencias;

}
while (condición)

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;

Artículo (C) Epsilon Eridani.