Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Instructions
  5. bloc

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

bloc

Baseline Widely available

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⁩.

Uneinstruction 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 unlabel.

Exemple interactif

var x = 1;let y = 1;if (true) {  var x = 2;  let y = 2;}console.log(x);// Expected output: 2console.log(y);// Expected output: 1

Syntaxe

Instruction de bloc

js
{  instruction_1;  instruction_2;  ...  instruction_n;}

Instruction de bloc étiquetée

js
// ou, avec une étiquette :label: {  instruction_1;  instruction_2;  ...  instruction_n;}
instruction_1,instruction_2,instruction_n

Les instructions qu'on souhaite regrouper au sein du bloc.

labelFacultatif

Uneétiquette qui permet une identification visuelle de la cible d'une instructionbreak.

Description

Cette instruction est le plus souvent utilisée avec les instructions de contrôle (ex.if…else,for,while). On verra ainsi :

js
while (x < 10) {  x++;}

On peut voir dans cet exemple que cette instruction se termine sans point-virgule.

L'instruction de bloc est souvent appeléeinstruction 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 uneinstruction vide pour ne rien faire là où JavaScript attend une instruction.

Exemples

Règles de portée pour var ou les déclarations de fonction en mode non-strict

Les variables déclarées avecvar ou créées avecune déclaration de fonction en mode non-strictn'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 :

js
var x = 1;{  var x = 2;}console.log(x); // affiche 2 dans la console

On voit 2 dans la console, car l'instructionvar x contenue dans le bloc appartient à la même portée que l'instructionvar 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.

Règles de portée pour let, const ou les déclarations de fonction en mode strict

En revanche, les identifiants déclarés aveclet etconstpossèdent une portée limitée au bloc :

js
let x = 1;{  let x = 2;}console.log(x); // affiche 1 dans la console

L'instructionx = 2 est limitée à la portée du bloc dans laquelle elle est présente.

Il en va de même pourconst:

js
const c = 1;{  const c = 2;}console.log(c); // affiche 1, ne déclenche pas de SyntaxError

L'instructionconst c = 2ne déclenche pasSyntaxError: Identifier 'c' has already been declared, car cet identifiant est bien unique pour ce bloc.

Enmode 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.

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-block

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp