if...else

This article needs a technical review. How you can help.

This article needs an editorial review. How you can help.

Resum

La sentència if executa una sentència si una condició especificada és certa. Si la condició és falsa, opcionalment s'executa una declaració diferent.

Sintaxi

if (condició)
   sentència1
[else
   sentència2]
condició
Una expressió que esdevé o certa o falsa.
sentència1
És la sentència que s'executa si la condició esdevé certa. Pot ser qualsevol declaració, incloent més sentències if aniuades. Per executar múltimples sentències, es fa servir una sentència block ({ ... }) per agrupar aquestes sentències, si no es vol executar cap sentència, es fa servir una sentència buida.
sentència2
La sentència que s'executa si la condition esdevé falsa i hi ha la clàusula else. Pot ser qualsevol sentència, incloent sentències en block i més sentències if aniuades.

Descripció

Múltiples sentències if...else poden aniuar-se per crear una clàusula else if. Fixeu-vos que no hi ha la paraula clau elseif (en una paraula) en JavaScript.

if (condició1)
   sentència1
else if (condició2)
   sentència2
else if (condició3)
   sentència3
...
else
   sentènciaN

Per veure com funciona, així es com es veuria amb l'aniuament degudament indentat.

if (condició1)
   sentència1
else
   if (condició2)
      sentència2
   else
      if (condició3)
...

Per executar múltiples sentències dins una clàusula, utilitzeu una sentència block ({ ... }) per agrupar aquestes sentències. En general, és una bona pràctica utilitzar sempre sentències de block, especialment en codi que inclogui sentències if aniuades:

if (condició) {
   sentència1
} else {
   sentència2
}

No confongueu els valors booleans primitius true i false amb els valors cert i fals de l'objecte Boolean. Qualsevol valor que no sigui undefined, null, 0, NaN, o una cadena buida (""), i qualsevol objecte, incloent un objecte Boolean que tingui el valor fals, esdevé cert quan es passa a una sentència condicional. Per exemple:

var b = new Boolean(false);
if (b) // this condition evaluates to true

Exemples

Exemple: Fer servir if...else

if (cipher_char === from_char) {
   result = result + to_char;
   x++;
} else {
   result = result + clear_char;
}

Exemple: Fer servir else if

Vegeu que no hi ha cap sintaxi elseif en JavaScript. Tanmateix, es pot escriure amb un espai entre else i if:

if (x > 5) {

} else if (x > 50) {

} else {

}

Exemple: Assignació dins l'expressió condicional

És recomanable no utilitzar assignacions simples en una expressió condicional, atès que l'assignació es pot confondre amb l'igualtat quan es mira per sobre el codi. Per exemple, no utilitzeu el codi següent:

if (x = y) {
   /* do the right thing */
}

Si necessiteu usar una assignació dins d'una expressió condicional, una pràctica comuna és ficar parèntesis addicionals embolcallant l'assignació. Per exemple:

if ((x = y)) {
   /* do the right thing */
}

Especificacions

Especificacó Estat Comentaris
1a edició de ECMAScript. Estàndard Definció inicial.
ECMAScript 5.1 (ECMA-262)
The definition of 'if statement' in that specification.
Standard  
ECMAScript 6 (ECMA-262)
The definition of 'if statement' in that specification.
Release Candidate  

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vegeu també

Document Tags and Contributors

 Contributors to this page: fscholz, llue
 Last updated by: fscholz,