Es común en la programación que se requieran tomar determinadas decisiones sobre órdenes que serán o no ejecutadas en base a dichas decisiones. Generalmente los programas no tienen una ejecución secuencial, esto es, no suelen ejecutarse sentencia a sentencia en el mismo orden en que fueron escritas, sino que a veces nos resulta necesario alterar este orden previamente establecido
Bifurcaciones
Son probablemente las estructuras de control más utilizadas en cualquier lenguaje de programación. Capaces de tomar una decisión, de realizar una serie de operaciones, sólo si se cumple una determinada condición. Esta estructura se llama o se le conoce como: if, que se traduce como “SI” condicional. Establecemos una condición que “si” se cumple, entonces se hará lo que especifiquemos dentro del if.
Hay dos tipos de condicionantes : Simples y Compuestos.




Ciclos
El ciclo es un conjunto de sentencias que se repite un número determinado de veces. Supongamos que por ejemplo queremos tomar el contenido de un array y sumarle una cantidad. Con la estructura if sólo conseguimos que lo que está dentro de las llaves se ejecute una sola vez, por lo que no sería válida para lo que perseguimos.
Para este tipo de necesidades tenemos las estructuras llamadas bucles. En ellos se establece una condición (igual que lo hacíamos en el if) que se evaluará para ver si se cumpla o no. Ésta será la condición de entrada al bucle. Las instrucciones interiores, encerradas entre llaves, se realizan mientras se siga cumpliendo la condición especificada en la entrada del
bucle. Tenemos las siguientes opciones para realizar un ciclo en JavaScript:



