Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

if...else

BaselineWidely available

La sentenciaif...else ejecuta una sentencia, si una condición específicada es evaluada comoverdadera. Si la condición es evaluada comofalsa, otra sentencia en la clausula opcionalelse será ejecutada.

Pruébalo

function testNum(a) {  let result;  if (a > 0) {    result = "positive";  } else {    result = "NOT positive";  }  return result;}console.log(testNum(-5));// Expected output: "NOT positive"

Sintaxis

js
if (condición)  sentencia1// Con una clausula elseif (condición)  sentencia1else  sentencia2
condición

Una expresión que puede ser evaluada comoverdadera ofalsa.

sentencia1

Sentencia que se ejecutará sicondición es evaluada comoverdadera. Puede ser cualquier sentencia, incluyendo otras sentencciasif anidadas. Para ejecutar múltiples sentencias, use una sentenciablock ({ ... }) para agruparlas. Para no ejecutar ninguna sentencia, usa una sentenciavacía.

sentencia2

Sentencia que se ejecutará sicondición se evalúa comofalsa, y existe una cláusulaelse. Puede ser cualquier sentencia, incluyendo sentenciasblock y otras sentenciasif anidadas.

Descripción

Multiples sentenciasif...else pueden ser anidadas para crear una cláusulaelse if. Note que no hay una palabra claveelseif (en una sola palabra) en JavaScript.

if (condición1)   sentencia1else if (condición2)   sentencia2else 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)   sentencia1else   if (condición2)      sentencia2   else      if (condición3)      ...

Para ejecutar varias sentencias en una cláusula, use una sentenciablock ({/* ... */ }) para agruparlas.

js
if (condición) {  sentencia1;} else {  sentencia2;}

No usarblocks puede ocacionar un comportamiento inesperado, especialmente si el código es estructurado manualmente. Por ejemplo:

js
function checkValue(a, b) {  if (a === 1)    if (b === 2)      console.log("a is 1 and b is 2");  else    console.log("a is not 1");}

Este código puede parece inocente — sin embargo, si ejecutamoscheckValue(1, 3) registrara el mensaje "a is not 1". Esto debido a que en el caso dedangling else, la clausulaelse se conectará a la clausulaif más cercana. Por lo tanto, el código anterior, indentado apropiadamente, se vería así:

js
function checkValue(a, b) {  if (a === 1)    if (b === 2)      console.log("a is 1 and b is 2");    else      console.log("a is not 1");}

Generalmente, es una buena práctica usar siempre sentencias block, especialmente en código que incluya sentencias if anidadas.

js
function checkValue(a, b) {  if (a === 1) {    if (b === 2) {      console.log("a is 1 and b is 2");    }  } else {    console.log("a is not 1");  }}

No confundir los valores booleanos primitivostrue yfalse con los valores verdadero y falso del objetoBoolean. Cualquier valor diferente deundefined,null,0,-0,NaN, o la cadena vacía (""), y cualquier objecto, incluso un objeto Boolean cuyo valor es false, se evalúa comoverdadero en una sentencia condicional. Por ejemplo:

js
const b = new Boolean(false);// Esta condición se evalúa como verdaderaif (b) {  console.log("b is truthy"); // "b is truthy"}

Ejemplos

Uso deif...else

Note que no hay sintaxiselseif en JavaScript. Sin embargo, puede escribirse con un espacio entreelse yif:

js
if (cipherChar === fromChar) {  result += toChar;  x++;} else {  result += clearChar;}

Using else if

Note que no hay sintaxiselseif en JavaScript. Sin embargo, puede escribirse con un espacio entreelse yif:

js
if (x > 50) {  /* hace algo */} else if (x > 5) {  /* hace algo */} else {  /* hace algo */}

Asignación en una expresión condicional

Casi nunca deberías tener unif...else con una asignacionx = y como condición:

js
if ((x = y)) {  // …}

Porque a diferencia de los bucleswhile, la condición es evaluada sólo una vez, así que la asignación es ejecutada una vez. El código anterior es equivalente a:

js
x = y;if (x) {  // …}

El cual es mucho más claro. Sin embargo, en el raro caso que te encuentres en la situación de hacer algo como eso, la documentación del buclewhile tiene una sección llamadaUsando una asignación como una condición con nuestras recomendaciones.

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-if-statement

Compatibilidad con navegadores

Véase También

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp