JavaScript Si / Else Si / Else Control


Ejemplo

En su forma más simple, una condición if se puede usar así:

var i = 0;

if (i < 1) {
    console.log("i is smaller than 1");
}

La condición i < 1 se evalúa, y si se evalúa como true se ejecuta el bloque que sigue. Si se evalúa como false , el bloque se omite.

Una condición if puede expandirse con un bloque else . La condición se verifica una vez como se indicó anteriormente, y si se evalúa como false , se ejecutará un bloque secundario (que se omitiría si la condición fuera true ). Un ejemplo:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    console.log("i was not smaller than 1");
}

Suponiendo que el bloque else no contiene más que otro bloque if (con opcionalmente un bloque else ) como este:

if (i < 1) {
    console.log("i is smaller than 1");
} else {
    if (i < 2) {
        console.log("i is smaller than 2");
    } else {
        console.log("none of the previous conditions was true");
    }
}

Luego también hay una forma diferente de escribir esto que reduce el anidamiento:

if (i < 1) {
    console.log("i is smaller than 1");
} else if (i < 2) {
    console.log("i is smaller than 2");
} else {
    console.log("none of the previous conditions was true");
}

Algunas notas importantes sobre los ejemplos anteriores:

  • Si alguna condición se evalúa como true , no se evaluará ninguna otra condición en esa cadena de bloques y no se ejecutarán todos los bloques correspondientes (incluido el bloque else ).

  • El número de else if partes es prácticamente ilimitada. El último ejemplo anterior solo contiene uno, pero puedes tener tantos como quieras.

  • La condición dentro de una sentencia if puede ser cualquier cosa que pueda ser forzada a un valor booleano, consulte el tema sobre lógica booleana para obtener más detalles;

  • La escalera if-else-if sale en el primer éxito. Es decir, en el ejemplo anterior, si el valor de i es 0.5, entonces se ejecuta la primera rama. Si las condiciones se superponen, se ejecutan los primeros criterios que se producen en el flujo de ejecución. La otra condición, que también podría ser cierta, se ignora.

  • Si solo tiene una declaración, las llaves alrededor de esa declaración son técnicamente opcionales, por ejemplo, esto está bien:

    if (i < 1) console.log("i is smaller than 1");
    

    Y esto funcionará también:

    if (i < 1) 
        console.log("i is smaller than 1");
    

    Si desea ejecutar varias declaraciones dentro de un bloque if , entonces las llaves que las rodean son obligatorias. Sólo usar sangría no es suficiente. Por ejemplo, el siguiente código:

    if (i < 1) 
        console.log("i is smaller than 1");
        console.log("this will run REGARDLESS of the condition"); // Warning, see text!
    

    es equivalente a:

    if (i < 1) {
        console.log("i is smaller than 1");
    }
    console.log("this will run REGARDLESS of the condition");