04. Estructuras de Control - cejaramillof/javaScript GitHub Wiki
Estructuras de Control de Flujo
Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Si se utilizan estructuras de control de flujo, los programas dejan de ser una sucesión lineal de instrucciones para convertirse en programas inteligentes que pueden tomar decisiones en función del valor de las variables.
Comparaciones
Si comparara objetos fallaría porque compararía la posición en memoria.
Estricta: (Recomendada)
Compara tipo y valor, se hace con 3 iguales (===)
Abstracta: Conversión de tipos
Compara convirtiendo ambos valores (Conversión de tipos), se hace con 2 iguales (==)
Para las comparaciones abstractas relacionales (<=), Primero se convierten en primitivos, y luego en el mismo tipo, antes de la comparación.
Condicionales (if)
if (condición) {
código a ejecutar, si se cumple la condición
} else if (segundaCondición) {
código a ejecutar, si se cumple la condición
} else {
código a ejecutar, cuando no se cumple ninguna condición
}
Condicional múltiple: (switch)
switch(// variable a comparar){
case 'case2':
console.log('execute when case2');
break;
case 'caso1':
case 'casoUno':
console.log('execute when case1 or caseUno');
break;
default:
break;
}
Ciclos - Bucles (Estructuras repetitivas)
For
/* inicial; condición; incremento */
for (var i = 1; i <= 365; i++) {
// código a repetir
}
For Of
Could be used in any iterable object (array, string, map, set, arguments, nodeList, etc). in each step return a value
var array = [2, 3, 4];
for (const number of array) {
// not has index, for position, return the current element
console.log(number);
}
function greetingsAll() {
for(name of arguments) {
console.log(`Hi ${name}`);
}
}
greetingsAll('Carlos', 'Tyrone', 'Admin');
For in
Iterate over iterable properties (doesn't show proto), instead of values. Any object typed, doesn't restricted to iterables.
// for enumerable properties
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
var days = ["L", "M", "W", "J", "V", "S", "D"];
for (index in days) {
console.info(days[index]);
}
// for loop in iterable objs like nodelist, and whatever is best way use (of)
for (day of days) {
console.info(day);
}
While
// condición
while (persona.peso > META) {
// código a repetir, mientras se cumpla la condición
}
Do While
do {
// Minimo se repite 1 vez, antes de verificar la condición
// código a repetir, mientras se cumpla la condición
} while(persona.peso > Meta)
// condición
Break
Esta declaración "salta-sale" de un bucle.
for (i = 0; i < 10; i++) {
if (i === 3) { break; }
text += "The number is " + i + "<br>";
}
Continue
Esta declaración "salta sobre" una iteración en el bucle.
for (i = 0; i < 10; i++) {
if (i === 3) { continue; }
text += "The number is " + i + "<br>";
}