Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Une instruction de bloc est utilisée afin de grouper zéro ou plusieurs instructions. Le bloc est délimité par une paire d'accolades. On peut éventuellement « étiqueter » un bloc avec un label.
Les instructions qu'on souhaite regrouper au sein du bloc.
label FacultatifUne étiquette qui permet une identification visuelle de la cible d'une instruction break.
Cette instruction est le plus souvent utilisée avec les instructions de contrôle (ex. if…else, for, while). On verra ainsi :
On peut voir dans cet exemple que cette instruction se termine sans point-virgule.
L'instruction de bloc est souvent appelée instruction composée (compound statement) dans d'autres langages. En effet, elle permet d'utiliser plusieurs instructions là où JavaScript n'attend qu'une instruction. C'est une pratique courante que de combiner plusieurs instructions grâce aux blocs. À l'opposé, on peut utiliser une instruction vide pour ne rien faire là où JavaScript attend une instruction.
Les variables déclarées avec var ou créées avec une déclaration de fonction en mode non-strict n'ont pas une portée limitée au bloc. Les variables introduites dans un bloc auront la portée de la fonction ou du script englobant ce bloc. Les variables pourront alors être utilisées en dehors du bloc. Autrement dit, une instruction de bloc n'introduit pas une portée :
On voit 2 dans la console, car l'instruction var x contenue dans le bloc appartient à la même portée que l'instruction var x située avant le bloc.
En mode non-strict, les déclarations de fonction à l'intérieur des blocs peuvent se comporter étrangement, il est déconseillé de les utiliser.
En revanche, les identifiants déclarés avec let et const possèdent une portée limitée au bloc :
L'instruction x = 2 est limitée à la portée du bloc dans laquelle elle est présente.
Il en va de même pour const:
L'instruction const c = 2 ne déclenche pas SyntaxError: Identifier 'c' has already been declared, car cet identifiant est bien unique pour ce bloc.
En mode strict, à partir de ES2015, les fonctions à l'intérieur des blocs ont une portée qui correspond à ce bloc. Avant ES2015, les fonctions de bloc étaient interdites.
| ECMAScript® 2027 Language Specification # sec-block |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 17 févr. 2025 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.