Entender los flujos de datos en JavaScript
13/12/2019

Entender los flujos de datos en JavaScript

Programación y Diseño Web

Los flujos de datos en programas son fundamentales para dotar a los mismos de la capacidad de tomar decisiones en función de los valores que tomen las variables.

 

Si no existiesen las estructuras de control de flujos de datos, los programas serían una sucesión de líneas de código a ejecutar de forma secuencial.

 

Todo lenguaje de programación actual dispone de diversas estructuras de control de flujo. JavaScript en concreto, soporta un conjunto compacto de sentencias, específicamente para el manejo de flujo, que pueden usarse para incorporar mayor interactividad a las aplicaciones.

 

Conjunto de estructuras de control en JavaScript

En JavaScript podemos decir que básicamente disponemos de seis estructuras diferentes para el control del flujo de datos. En concreto son las siguientes:

  • Estructura if…else
  • Estructura switch
  • Estructura while
  • Estructura for
  • Estructura for…in y for…of
  • Estructura try

A continuación, veremos cómo debe usarse cada una de estas estructuras.

  • Estructura if…else

La estructura condicional es una de las más usadas en programación. Su objetivo es poder tomar decisiones en base ala condición a comparar en la cláusula if.

Si la condición del if se cumple, se ejecutará todo el código que haya dentro del bloque. Si no se cumple la condición, se ejecutará el código contenido en el bloque de la cláusula else.

Si no existe la cláusula else, se continúa con el resto del programa.

También se puede encadenar una nueva condición de la forma else if, de forma que, si no se cumple la primera condición, se comparara con la segunda condición y así hasta que hayamos evaluado todo lo que necesitemos en nuestro programa.

En la cláusula if se usarán los diferentes operadores de comparación:

  • == si se quiere ver si dos valores o variables son iguales
  • <, >, <=, >= para ver si dos valores son mayores, menores o sus variantes
  • AND, OR operadores lógicos booleanos

La estructura más completa sería así:

if (condición_1)

{ sentencia_1; }

else if (condición_2)

{sentencia_2; }

else

{ultima_sentencia; }

 

  • Estructura switch

Esta estructura es útil cuando la condición a evaluar puede tomar diferentes valores y resulta mucho más útil que usar múltiples sentencias if…else if…else.

Esta estructura evalúa el valor de una variable y en función del valor de esta, ejecuta un conjunto de instrucciones dentro de una cláusula case.

Hay que tener en cuenta que, para optimizar el código, al final de una cláusula case debemos usar la sentencia break pues de lo contrario se seguirán evaluando todas las opciones.

También se puede añadir la cláusula default por si la expresión evaluada no cumple con ninguna de las opciones. Si no existe el default, se continuará ejecutando el resto del programa.

La estructura más completa es esta:

switch (expresión)

{ case etiqueta_1: sentencias_1; break;

  case etiqueta_2: sentencias_2; break;

...

  default: sentencias_por_defecto; break; }

 

  • Estructura while

Otra estructura de control es while. Esta estructura evalúa el cumplimiento de una condición y mientras la misma que cumpla se ejecutará el código dentro del bloque del while.

Está claro que para no tener un bucle infinito que nunca acaba, dentro del bloque que se ejecuta, la variable que se evalúa dentro del while debe sufrir variación para que en un momento dado podamos salir del mismo.

La sentencia se define así:

while (condicion)

{sentencia1;

sentencia2;

}

 

  • Existe una variante de while y es el do…while donde antes de evaluar la condición del while, se ejecuta lo que hay en el bloque del do y luego se evalúa la condición, repitiendo el código del bloque do mientras se cumpla la condición, pero al menos una vez, ese bloque se ejecuta.

do {sentencia1;

    sentencia2;}

while (condicion);

 

  • Estructura for

El bucle for se utiliza para la ejecución de un bloque de sentencias mientras la condición que se evalúa sea cierta. Además, después de cada repetición, actualiza el valor de las variables que se utilizan en la condición.

Su definición es la siguiente:

for ([expresioninicial]; [condicion]; [expresionincremento])

{sentencia1;

Sentencia2;}

En esta definición

La " expresioninicial " es la zona en la que se establece los valores iniciales de las variables que controlan la repetición del bucle.

La "condicion" es el único elemento que decide si continua o se detiene la repetición.

La "expresionincrementio" es el nuevo valor que se asigna después de cada repetición a las variables que controlan la repetición.

Estructura for…in y for…of

Este tipo de bucle requiere el uso de objetos. El bucle for…in recorre las propiedades de un objeto y para cada propiedad de este se ejecutan las sentencias que hay dentro del bucle.

Su definición es la siguiente:

for (variable in objeto)

{ sentencias }

Sin embargo, el bucle for…in recorre los valores del objeto

for (variable of objeto)

{ sentencias }

Resumiendo, mientras for...in itera sobre nombres de propiedades, for...of itera sobre valores de propiedades.

Estructura try

Por último, la estructura try. Consiste en un bloque de código que se ejecuta de manera normal, y captura cualquier excepción que se pueda producir en ese bloque de sentencias.

Si no se produce ninguna excepción en el bloque try, no se ejecuta el bloque dentro de catch.

try { bloque de sentencias; }

catch(ex) { sentencia; }

 

Y hasta aquí el conjunto de estructuras que podemos usar para controlar el flujo de datos en JavaScript. Espero que este post te haya sido de utilidad.

 

 

 

 

Comparte en:

¿Qué es la API de lenguaje natural de Google?
14/02/2020
Carlos Yañez

¿Qué es la API de lenguaje natural de Google?

En el post de hoy hablaremos de la API de lenguaje natural desarrollada por Google, veremos de que se trata y mostraremos sus posibilidades y ventajas que puede ofrece...

kpsi ciberseguridad
11/02/2020
Rubén Bellido

Qué son los KPSI en Ciberseguridad

Como ya sabemos, las amenazas que se encuentran las empresas a diarios son dinámicas, cambian constantemente y por ello los KPSI nos ayudan a garantizar si están sie...

Big data y ecommerce
23/01/2020
Anna Mercadé

Big data y ecommerce mejores amigos

Ya hace cierto tiempo que oímos hablar del big data y de todo su potencial en muchas aplicaciones como por ejemplo el marketing y el ecommerce pero también aplicacio...