Contenidos
Estructuras de control en Javascript
Para las estructuras de control, JavaScript posee las sentencias de control típicas de los lenguajes de alto nivel
Declaración de variables
A las variables en JavaScript no se les asigna un tipo predefinido
En JavaScript el tipo de las variables depende del valor que contengan las mismas en cada momento
Por tanto se realiza una conversión automática de tipos
JavaScript reconoce los siguientes tipos de valores:
- Números
- Valores booleanos
true y false
- Strings
- El valor null
- Objetos
Creados por el programador o predefinidos por el lenguaje
Dado que no existen tipos de variables a priori, no hemos de especificar el tipo de variable cuando la declaramos
La declaración de variables se hace anteponiendo la palabra reservada var al nombre de la variable
Es posible asignarle el valor cuando la declaramos
La sentencia if
La sentencia if tiene la forma:
Los paréntesis asociados que delimitan la condición no son opcionales
En caso de que la condición sea verdadera se ejecutará la instrucción 1; en caso contrario se ejecuta si existe la instrucción 2
El uso de la sentencia else es opcional, por eso en la definición se han utilizado los corchetes
Si se omite, sólo se tendrá en cuenta el bloque de instrucciones cuando la condición sea verdadera
Un bloque de instrucciones es un conjunto de instrucciones delimitadas por llaves
Las llaves después de la sentencia if no son obligatorias
Si se omiten y la condición era verdadera, se ejecutará la siguiente instrucción
En caso contrario, se ejecutará la subsiguiente instrucción, de forma independiente al estado de la condición
De este modo, la omisión de las llaves después de la sentencia if nos permitirá escribirlo todo en una única línea terminada en ;
La sentencia else if
También podemos utilizar sentencias if anidades mediante la sentencia else if
Las sentencias else if funcionan igual que una sentencia if
Pero sólo se ejecutarán en caso de que la condición de la sentencia if fuese falsa
La sentencia switch
Hace que se seleccione un grupo de sentencias entre varias posibles
Es una alternativa al uso de sentencias else if anidadas
Su sintaxis es:
La expresión entre paréntesis del switch debe ser entera
Su resultado se comparará con los distintos valores del case
Si coincide con uno de ellos se pasará a la instrucción siguiente al case con dicho valor y se seguirán ejecutando las instrucciones consecutivas hasta encontrar una instrucción break o alcanzar las llaves de cierre del switch
En caso de que el resultado de la expresión no coincida con ningún valor se pasará la ejecución a la instrucción siguiente de la etiqueta default, si la hubiera, y se continuará como un case
Los valores en los case pueden ser una expresión constante
No puede haber dos case con el mismo valor
La sentencia while
La sentencia while tiene la forma
Los paréntesis no son opcionales
Si se cumple la condición, se ejecuta la instrucción o el bloque de instrucciones y se repite el proceso hasta que deje de cumplirse la condición
La sentencia do
La sentencia do tiene la forma
Es muy similar a la sentencia while, excepto que la condición va después de la instrucción o bloque de instrucciones
Con lo que al menos se ejecutan una vez aunque la condición sea falsa
La sentencia for
En cuando a dicha sentencia, en JavaScript podemos distinguir dos variantes:
- El bucle for "clásico"
- El bucle for / in
El bucle for "clásico"
Este bucle, tiene una sintaxis muy parecida a la de C / C++
En esta sintaxis:
Inicialización crea la variable contador y le da un valor inicial
Condición se debe cumplir para que el bucle se ejecute
Depende de la variable índice
Expresión actualiza el valor de la variable índice
El equivalente de esta expresión con while es:
El bucle for / in
Este bucle, tiene una sintaxis muy parecida al for-each de Java
Itera una variable var sobre todas las propiedades de un objeto obj que se le pasa
Así para cada valor de var se ejecutaran las sentencias del bucle
Por lo tanto, el bucle tendrá tantas iteraciones como propiedades el objeto y en cada iteración la variable tendrá el valor de la propiedad del objeto correspondiente con dicha iteración
Su sintaxis es:
La sentencia break
La sentencia break se puede colocar dentro de un bucle o bucles anidados
Cuando se ejecuta la sentencia break se abandona el bucle más interno
A todos los efectos la sentencia break actúa como un salto a la instrucción siguiente al bucle en el que se ejecuta
La sentencia continue
La sentencia continue, no abandona el bucle si no que hace que se ejecute la siguiente iteración
En el bucle while la ejecución del continue hace que el flujo del programa salte a la condición
En el bucle for la ejecución del continue hace que se ejecute la expresión de incremento, para después continuar normalmente con la condición
Es decir, la ejecución del continue evita que se ejecute el resto del cuerpo del bucle