Instructions
============

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 `switch` ou l'instruction `label` en 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.

Expérimental `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` 
Obsolète

Non-standard

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 `break` ou `continue`.

`with` 
Obsolète

Cette instruction permet d'étendre la portée chaînée d'une instruction.

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Language Specification # sec-async-function-definitions |
| ECMAScript Language Specification # sec-async-generator-function-definitions |
| ECMAScript Language Specification # sec-block |
| ECMAScript Language Specification # sec-break-statement |
| ECMAScript Language Specification # sec-class-definitions |
| ECMAScript Language Specification # sec-let-and-const-declarations |
| ECMAScript Language Specification # sec-continue-statement |
| ECMAScript Language Specification # sec-debugger-statement |
| ECMAScript Language Specification # sec-do-while-statement |
| ECMAScript Language Specification # sec-empty-statement |
| ECMAScript Language Specification # sec-exports |
| ECMAScript Language Specification # sec-for-statement |
| ECMAScript Language Specification # sec-for-in-and-for-of-statements |
| ECMAScript Language Specification # sec-function-definitions |
| ECMAScript Language Specification # sec-generator-function-definitions |
| ECMAScript Language Specification # sec-if-statement |
| ECMAScript Language Specification # sec-imports |
| ECMAScript Language Specification # sec-labelled-statements |
| ECMAScript Language Specification # sec-return-statement |
| ECMAScript Language Specification # sec-switch-statement |
| ECMAScript Language Specification # sec-throw-statement |
| ECMAScript Language Specification # sec-try-statement |
| ECMAScript Language Specification # sec-variable-statement |
| ECMAScript Language Specification # sec-while-statement |
| ECMAScript Language Specification # sec-with-statement |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Le chapitre de cette référence sur les opérateurs JavaScript.