--- title: if...else slug: Web/JavaScript/Referencia/Sentencias/if...else tags: - JavaScript - Statement translation_of: Web/JavaScript/Reference/Statements/if...else ---
Ejecuta una sentencia si una condición específicada es evaluada como verdadera. Si la condición es evaluada como falsa, otra sentencia puede ser ejecutada.
if (condición) sentencia1 [else sentencia2]
condición
sentencia1
condición
es evaluada como verdadera. Puede ser cualquier sentencia, incluyendo otras sentenccias if
anidadas. Para ejecutar múltiples sentencias, use una sentencia {{jsxref("Sentencias/block", "block")}} ({ ... }) para agruparlas.sentencia2
condición
se evalúa como falsa, y exista una cláusula else
. Puede ser cualquier sentencia, incluyendo sentencias block y otras sentencias if
anidadas.Multiples sentencias if...else
pueden ser anidadas para crear una cláusula else if
:
if (condición1) sentencia1 else if (condición2) sentencia2 else if (condición3) sentencia3 ... else sentenciaN
Para entender como esto funciona, así es como se vería si el anidamiento hubiera sido indentado correctamente:
if (condición1) sentencia1 else if (condición2) sentencia2 else if (condición3) ...
Para ejecutar varias sentencias en una cláusula, use una sentencia block ({ ... }
) para agruparlas. Generalmente, es una buena práctica usar siempre sentencias block, especialmente en código que incluya sentencias if anidadas:
if (condición) { sentencia1 } else { sentencia2 }
No confundir los valores primitivos true
y false
con los valores true y false del objeto {{jsxref("Boolean")}}. Cualquier valor diferente de undefined
, null
, 0
, -0
, NaN
, o la cadena vacía (""
), y cualquier objecto, incluso un objeto Boolean cuyo valor es false, se evalúa como verdadero en una sentencia condicional. Por ejemplo:
var b = new Boolean(false); if (b) // Esta condición se evalúa como verdadera
if...else
if (cipher_char == from_char) { result = result + to_char; x++; } else result = result + clear_char;
Es aconsejable no usar asignaciones simples en una expresión condicional, porque la asignación puede ser confundida con igualdad (operador relacional) cuando se lee el código. Por ejemplo, no use el siguiente código:
if (x = y) { /* sentencia */ }
Si realmente necesita una asignación dentro de una exprsión condicional, una práctica común es poner paréntesis adicionales alrededor del la asignación, por ejemplo:
if ((x = y)) { /* sentencia */ }