Les applications JavaScript sont composées de plusieurs instructions organisées grâce à une syntaxe. Une instruction peut s'étaler sur plusieurs lignes et on peut avoir plusieurs instructions sur une seule ligne si chaque instruction est séparée de la suivante par un point-virgule.
Instructions et déclarations, par catégorie
Pour une liste alphabétique, voir le volet de navigation situé à gauche sur cette page.
Contrôle du flux
Bloc- Une instruction de bloc est utilisée pour regrouper zéro ou plusieurs instructions. Un bloc est délimité par une paire d'accolades.
break- Cette instruction termine la boucle ou l'instruction
switchou l'instructionlabelen cours et continue l'exécution sur l'instruction suivant l'instruction terminée. continue- Cette instruction termine l'exécution des instructions dans la boucle courante, ou la boucle avec une étiquette correspondante, et continue l'exécution de la boucle dans l'itération suivante.
Vide- Une instruction vide est utilisée pour ne fournir aucune instruction là où JavaScript en attendrait une.
if...else- Cette instruction exécute une instruction si une condition donnée est vérifiée. Si la condition n'est pas vérifiée une autre instruction pourra être exécutée.
switch- Cette instruction permet d'évaluer une expression et de faire correspondre le résultat de cette expression avec différents cas et d'exécuter les instructions associées aux cas qui ont chacun un identifiant.
throw- Cette instruction lève une exception.
try...catch- Cette instruction permet de spécifier un ensemble d'instructions à tenter, et de préciser le traitement à effectuer dans le cas où une exception est produite.
Déclarations
var-
Cette instruction permet de déclarer une variable, éventuellement en fournissant une valeur pour permettant de l'initialiser.
let- Cette instruction permet de déclarer une variable locale dans une portée d'un bloc et éventuellement d'initialiser sa valeur.
const- Cette instruction déclare une constante en lecture seule.
Fonctions et classes
function- Cette instruction déclare une fonction avec les paramètres donnés.
function*- Les fonctions génératrices permettent de créer des itérateurs plus simplement.
-
async function - Cette instruction déclare une fonction asynchrone avec les paramètres associés.
return- Cette instruction spécifie la valeur de retour renvoyée par une fonction.
class- Déclare une classe.
Itérations
do...while- Cette instruction crée une boucle qui s'exécute tant que la condition est vraie. La condition est évaluée après avoir exécuté une itération de boucle, ce qui fait que cette boucle sera exécutée au moins une fois.
for- Cette instruction crée une boucle qui se base sur trois expressions facultatives. Ces expressions sont entre parenthèses, séparées par des points virgules et suivies par l'instruction à exécuter dans la boucle.
for each...in- Cette instruction itère une variable donnée sur toutes les propriétés d'un objet. Pour chaque propriété distincte, une instruction spécifique est exécutée.
for...in- Cette instruction effectue, dans un ordre arbitraire, une boucle sur les propriétés énumérables d'un objet. Pour chacune des différentes propriétés, des instructions peuvent être exécutées.
for...of- Cette instruction parcourt les objets sur lesquels on peut itérer (comme les tableaux, les itérateurs et générateurs). Pour ce faire, elle utilise un mécanisme d'itération sur mesure utilisant des instructions à exécuter pour chacune des différentes propriétés.
for await...of- Cette instruction parcourt les objets itérables asynchrones tels que les tableaux, les itérateurs et générateurs. Elle utilise un mécanisme d'itération spécifique et des instructions sont exécutées pour la valeur de chaque propriété.
while- Cette instruction permet de créer une boucle qui s'exécute tant qu'une condition de test est vérifiée. La condition est évaluée avant d'exécuter l'instruction contenue dans la boucle.
Autres
debugger- Cette instruction appelle une fonctionnalité de débogage. Si aucune fonctionnalité de débogage n'est disponible, l'instruction n'a aucun effet.
export- Cette instruction permet à un script signé de fournir des propriétés, fonctions et des objets à d'autres scripts (signés ou non).
import- Cette instruction permet à un script d'importer des propriétés, fonctions ou objets depuis un script qui les exporte.
import.meta- Une méta propriété qui expose des métadonnées à propos du module JavaScript.
label- Cette instruction fournit un identifiant auquel il est possible de se référer en utilisant une instruction
breakoucontinue.
with- Cette instruction permet d'étendre la portée chaînée d'une instruction.
Spécifications
| Spécification | Statut | Commentaires |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) La définition de 'Statements' dans cette spécification. |
Standard | Définition initiale. |
| ECMAScript 3rd Edition (ECMA-262) La définition de 'Statements' dans cette spécification. |
Standard | |
| ECMAScript 5.1 (ECMA-262) La définition de 'Statements' dans cette spécification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'ECMAScript Language: Statements and Declarations' dans cette spécification. |
Standard | Nouveaux éléments : function*, let, for...of, yield, class |
| ECMAScript Latest Draft (ECMA-262) La définition de 'ECMAScript Language: Statements and Declarations' dans cette spécification. |
Projet |
Compatibilité des navigateurs
| Ordinateur | Mobile | Serveur | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Legacy generator function | Chrome Aucun support Non | Edge Aucun support Non | Firefox Aucun support 2 — 58 | IE Aucun support Non | Opera Aucun support Non | Safari Aucun support Non | WebView Android Aucun support Non | Chrome Android Aucun support Non | Edge Mobile Aucun support Non | Firefox Android Aucun support 4 — 58 | Opera Android Aucun support Non | Safari iOS Aucun support Non | Samsung Internet Android Aucun support Non | nodejs Aucun support Non |
async function | Chrome Support complet 55 | Edge Support complet Oui | Firefox Support complet 52 | IE Aucun support Non | Opera Support complet 42 | Safari Support complet 10.1 | WebView Android Support complet Oui | Chrome Android Support complet 55 | Edge Mobile Support complet Oui | Firefox Android Support complet 52 | Opera Android Support complet 42 | Safari iOS Support complet 10.1 | Samsung Internet Android Support complet 6.0 | nodejs
Support complet
7.6.0
|
block | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
break | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
class | Chrome Support complet 42 | Edge Support complet Oui | Firefox Support complet 45 | IE Aucun support Non | Opera Support complet 36 | Safari Support complet 10.1 | WebView Android Support complet 42 | Chrome Android Support complet 42 | Edge Mobile Support complet Oui | Firefox Android Support complet 45 | Opera Android ? | Safari iOS Support complet 10.1 | Samsung Internet Android Support complet 4.0 | nodejs Support complet 6.0.0 |
const | Chrome Support complet 21 | Edge Support complet Oui | Firefox
Support complet
36
| IE Support complet 11 | Opera Support complet Oui | Safari Support complet 5.1 | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android
Support complet
36
| Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
continue | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
debugger | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
do...while | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet 6 | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
Empty statement (;) | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
export | Chrome Support complet 61 | Edge
Support complet
16
| Firefox
Support complet
60
| IE Aucun support Non | Opera Support complet 47 | Safari Support complet 10.1 | WebView Android Aucun support Non | Chrome Android Support complet 61 | Edge Mobile Support complet Oui | Firefox Android
Support complet
60
| Opera Android Support complet 47 | Safari iOS Support complet 10.1 | Samsung Internet Android Aucun support Non | nodejs ? |
for | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
for await...of | Chrome Support complet 63 | Edge Aucun support Non | Firefox Support complet 57 | IE Aucun support Non | Opera Support complet 50 | Safari Support complet 11 | WebView Android Support complet 63 | Chrome Android Support complet 63 | Edge Mobile Aucun support Non | Firefox Android ? | Opera Android Support complet 50 | Safari iOS ? | Samsung Internet Android ? | nodejs ? |
for each...in | Chrome Aucun support Non | Edge Aucun support Non | Firefox Aucun support 1.5 — 57 | IE Aucun support Non | Opera Aucun support Non | Safari Aucun support Non | WebView Android Aucun support Non | Chrome Android Aucun support Non | Edge Mobile Aucun support Non | Firefox Android Aucun support 4 — 57 | Opera Android Aucun support Non | Safari iOS Aucun support Non | Samsung Internet Android Aucun support Non | nodejs Aucun support Non |
for...in | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet 6 | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
for...of | Chrome Support complet 38 | Edge Support complet 12 | Firefox
Support complet
13
| IE Aucun support Non | Opera Support complet 25 | Safari Support complet 8 | WebView Android Support complet 38 | Chrome Android Support complet Oui | Edge Mobile Support complet 12 | Firefox Android
Support complet
14
| Opera Android Support complet 25 | Safari iOS Support complet 8 | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
function | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
function* | Chrome Support complet 39 | Edge Support complet 13 | Firefox Support complet 26 | IE Aucun support Non | Opera Support complet 26 | Safari Support complet 10 | WebView Android Support complet Oui | Chrome Android Support complet 39 | Edge Mobile Support complet Oui | Firefox Android Support complet 26 | Opera Android Support complet Oui | Safari iOS Support complet 10 | Samsung Internet Android Support complet 4.0 | nodejs
Support complet
4.0.0
|
if...else | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
import | Chrome Support complet 61 | Edge
Support complet
16
| Firefox
Support complet
60
| IE Aucun support Non | Opera Support complet 47 | Safari Support complet 10.1 | WebView Android Support complet 61 | Chrome Android Support complet 61 | Edge Mobile Support complet Oui | Firefox Android
Support complet
60
| Opera Android Support complet 47 | Safari iOS Support complet 10.1 | Samsung Internet Android Aucun support Non | nodejs
Support complet
8.5.0
|
import.meta | Chrome Support complet 64 | Edge ? | Firefox Support complet 62 | IE Aucun support Non | Opera Support complet 51 | Safari Support complet 11.1 | WebView Android Support complet 64 | Chrome Android Support complet 64 | Edge Mobile ? | Firefox Android Support complet 62 | Opera Android Support complet 51 | Safari iOS Support complet 12 | Samsung Internet Android Aucun support Non | nodejs ? |
label | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
let | Chrome
Support complet
49
| Edge Support complet 12 | Firefox
Support complet
44
| IE Support complet 11 | Opera Support complet 17 | Safari Support complet 10 | WebView Android
Support complet
49
| Chrome Android
Support complet
49
| Edge Mobile Support complet 12 | Firefox Android
Support complet
44
| Opera Android Support complet 17 | Safari iOS Support complet 10 | Samsung Internet Android Support complet 4.0 | nodejs Support complet 6.0.0 |
return | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
switch | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
throw | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
try...catch | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet 6 | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
var | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
while | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
with | Chrome Support complet Oui | Edge Support complet Oui | Firefox Support complet 1 | IE Support complet Oui | Opera Support complet Oui | Safari Support complet Oui | WebView Android Support complet Oui | Chrome Android Support complet Oui | Edge Mobile Support complet Oui | Firefox Android Support complet 4 | Opera Android Support complet Oui | Safari iOS Support complet Oui | Samsung Internet Android Support complet Oui | nodejs Support complet Oui |
Légende
- Support complet
- Support complet
- Aucun support
- Aucun support
- Compatibilité inconnue
- Compatibilité inconnue
- Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
- Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
- Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
- Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
- Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
- Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
- Voir les notes d'implémentation.
- Voir les notes d'implémentation.
- Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
- Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Voir aussi
- Le chapitre de cette référence sur les opérateurs JavaScript.

