if...else

L'instruction if exécute une instruction si une condition donnée est vraie. Si la condition n'est pas vérifiée, il est possible d'utiliser une autre instruction.

Syntaxe

if (condition)
   instruction1
[else
   instruction2]
condition
Une expression qui est évaluée à true ou false.
instruction1
L'instruction qui est exécutée si la condition est vérifiée (i.e. est évaluée à true). Cette instruction peut être n'importe quelle instruction valide, y compris une imbrication d'autres instructions if. Pour exécuter plusieurs instructions, on pourra utiliser un bloc d'instructions ({ ... }) qui permet de les regrouper. Pour n'exécuter aucune instruction, on pourra utiliser l'instruction vide.
instruction2
Si la clause else existe, l'instruction qui est exécutée si la condition est évaluée à false. Comme pour la première, cette instruction peut être n'importe quelle instruction valide : une autre instruction if imbriquée, un bloc d'instruction, une instruction vide, etc.

Description

Plusieurs instructions if...else peuvent être imbriquées afin de créer une structure else if (on notera qu'il n'y a pas de mot-clé elseif en JavaScript).

if (condition1)
   instruction1
else if (condition2)
   instruction2
else if (condition3)
   instruction3
...
else
   instructionN

Si on indente correctement le code, on retrouve la structure exactement équivalente :

if (condition1)
   instruction1
else
   if (condition2)
      instruction2
   else
      if (condition3)
...

Afin d'exécuter plusieurs instructions, on utilisera un bloc d'instructions ({ ... }) pour regrouper les instructions souhaitées. Utiliser les blocs d'instructions est une bonne façon d'organiser son code, surtout lorsque celui-ci comporte des instructions conditionnelles imbriquées.

if (condition) {
   instructions1
} else {
   instructions2
}

Attention à ne pas confondre les valeurs booléennes « primitives » true et false avec les valeurs true et false d'un objet Boolean. Toute valeur qui n'est pas undefined, null, 0, NaN ou la chaîne vide (""), et tout objet, y compris un objet Boolean dont la valeur est false, seront évalués à true lors d'une instruction conditionnelle if. Ainsi :

var b = new Boolean(false);
if (b) // la condition sera évaluée à true

Exemples

Utiliser if...else

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

Utiliser else if

Bien qu'il n'y ait pas de mot-clé elseif dans le langage JavaScript, il est possible d'imbriquer des instructions if...else à la suite les une des autres en plaçant un espace entre else et le début de l'instruction if imbriquée :

if (x > 5){
  // faire quelque chose
} else if (x > 50) {
  // faire autre chose
} else {
  // faire encore autre chose
}

Affectation de variable dans l'expression conditionnelle

Il est conseillé de ne pas utiliser d'affectation au sein des expressions conditionnelles. En effet, l'affectation peut être confondue avec un test d'égalité lorsqu'on analyse le code. Il ne faut donc pas utiliser le code suivant (bien qu'il fonctionne) :

if (x = y) {
   /* exécuter les instructions */
}

S'il est nécessaire d'effectuer une telle affectation, une pratique courante consiste à ajouter des parenthèses de cette manière afin d'alerter le lecteur du code (exemple à utiliser) :

if ((x = y)) {
   /* exécuter les instructions */
}

Spécifications

Spécification Statut Commentaires
ECMAScript 2016 Draft (7th Edition, ECMA-262)
La définition de 'instruction if' dans cette spécification.
Projet  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'instruction if' dans cette spécification.
Standard  
ECMAScript 5.1 (ECMA-262)
La définition de 'instruction if' dans cette spécification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
La définition de 'instruction if' dans cette spécification.
Standard  
ECMAScript 1st Edition (ECMA-262)
La définition de 'instruction if' dans cette spécification.
Standard Définition initiale

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, teoli
 Dernière mise à jour par : SphinxKnight,