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.
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.
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.
label
Cette instruction fournit un identifiant auquel il est possible de se référer en utilisant une instruction break ou continue.
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.
Standard évolutif  

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Legacy generator function Non Non2 — 58 Non Non Non
async function55 Oui52 Non4210.1
block Oui Oui Oui Oui Oui Oui
break Oui Oui Oui Oui Oui Oui
class42 Oui45 Non ?10.1
const21 Oui361 211 Oui5.1
continue Oui Oui Oui Oui Oui Oui
debugger Oui Oui Oui Oui Oui Oui
do...while Oui Oui Oui6 Oui Oui
Empty statement (;) Oui Oui Oui Oui Oui Oui
export61153544 Non4710.1
for Oui Oui Oui Oui Oui Oui
for each...in Non Non1.5 — 57 Non Non Non
for...in Oui Oui Oui6 Oui Oui
for...of3812135 Non258
function Oui Oui Oui Oui Oui Oui
function*391326 Non2610
if...else Oui Oui Oui Oui Oui Oui
import61153544 Non4710.1
label Oui Oui Oui Oui Oui Oui
let4112446 7 8111710
return Oui Oui Oui Oui Oui Oui
switch Oui Oui Oui Oui Oui Oui
throw Oui Oui Oui Oui Oui Oui
try...catch Oui Oui Oui6 Oui Oui
var Oui Oui Oui Oui Oui Oui
while Oui Oui Oui Oui Oui Oui
with Oui Oui Oui Oui Oui Oui
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Legacy generator function Non Non Non4 — 58 Non Non Non
async function Oui55 Oui52 Non4210.1
block Oui Oui Oui Oui Oui Oui Oui
break Oui Oui Oui Oui Oui Oui Oui
class4242 Oui45 Non ?10.1
const Oui Oui Oui361 211 Oui Oui
continue Oui Oui Oui Oui Oui Oui Oui
debugger Oui Oui Oui Oui Oui Oui Oui
do...while Oui Oui Oui Oui Oui Oui Oui
Empty statement (;) Oui Oui Oui Oui Oui Oui Oui
export Non61 Oui544 Non4710.1
for Oui Oui Oui Oui Oui Oui Oui
for each...in Non Non Non4 — 57 Non Non Non
for...in Oui Oui Oui Oui Oui Oui Oui
for...of5.1 Oui12 Oui Non258
function Oui Oui Oui Oui Oui Oui Oui
function* Oui39 Oui26 Non Oui10
if...else Oui Oui Oui Oui Oui Oui Oui
import Non61 Oui544 Non4710.1
label Oui Oui Oui Oui Oui Oui Oui
let414112446 7 8 ?1710
return Oui Oui Oui Oui Oui Oui Oui
switch Oui Oui Oui Oui Oui Oui Oui
throw Oui Oui Oui Oui Oui Oui Oui
try...catch Oui Oui Oui Oui Oui Oui Oui
var Oui Oui Oui Oui Oui Oui Oui
while Oui Oui Oui Oui Oui Oui Oui
with Oui Oui Oui Oui Oui Oui Oui

1. Prior to Firefox 13, const is implemented, but re-assignment is not failing.

2. Prior to Firefox 46, a TypeError was thrown on redeclaration instead of a SyntaxError.

3. From version 15: this feature is behind the Experimental JavaScript Features preference.

4. From version 54: this feature is behind the dom.moduleScripts.enabled preference. To change preferences in Firefox, visit about:config.

5. Prior to Firefox 51, using the for...of loop construct with the const keyword threw a SyntaxError ("missing = in const declaration").

6. Prior to Firefox 44, let is only available to code blocks in HTML wrapped in a <script type="application/javascript;version=1.7"> block (or higher version) and has different semantics (e.g. no temporal dead zone).

7. Prior to Firefox 46, a TypeError is thrown on redeclaration instead of a SyntaxError.

8. Firefox 54 adds support of let in workers.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, juestzmichael, fscholz, teoli, matteodelabre
 Dernière mise à jour par : SphinxKnight,