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ènciesifaniuades. 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
conditionesdevé falsa i hi ha la clàusulaelse. Pot ser qualsevol sentència, incloent sentències en block i més sentènciesifaniuades.
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 2015 (6th Edition, ECMA-262) The definition of 'if statement' in that specification. |
Standard |
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) |