Movatterモバイル変換


[0]ホーム

URL:


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

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

const

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

Ladéclarationconst permet de créer une constante nommée accessible uniquement en lecture. Cela ne signifie pas que la valeur contenue est immuable, uniquement que l'identifiant ne peut pas être réaffecté. Autrement dit la valeur d'une constante ne peut pas être modifiée par des réaffectations ultérieures. Une constante ne peut pas être déclarée à nouveau.

Exemple interactif

const number = 42;try {  number = 99;} catch (err) {  console.log(err);  // Expected output: TypeError: invalid assignment to const 'number'  // (Note: the exact output may be browser-dependent)}console.log(number);// Expected output: 42

Syntaxe

js
const nom1 = valeur1 [, nom2 = valeur2 [, … [, nomN = valeurN]]];
nomN

Le nom de la constante. Ce nom peut être n'importe quel identifiant valide.

valeurN

La valeur à associer à la constante. Cette valeur peut être n'importe quelleexpression valide (éventuellementune expression de fonction).

Description

Cette déclaration permet de créer une constante qui peut être globale ou locale pour la fonction dans laquelle elle a été déclarée. Les constantes font partie de la portée du bloc (comme les variables définies aveclet). À la différence des variables définies avecvar, les constantes déclarées au niveau globalne sont pas des propriétés de l'objet global (window dans le cas du navigateur). Il est nécessaire d'initialiser une constante lors de sa déclaration. Au sein d'une même portée, il est impossible d'avoir une constante qui partage le même nom qu'une variable ou qu'une fonction.

Attention, la déclarationconst crée une référence en lecture seule vers une valeur. Cela ne signifie pas que la valeur référencée ne peut pas être modifiée ! Ainsi, si le contenu de la constante est un objet, l'objet lui-même pourra toujours être modifié.

Note :Les aspects liés à lazone morte temporelle delet s'appliquent également àconst.

Exemples

Les instructions suivantes illustrent comment fonctionne cette déclaration. On pourra tester ces instructions dans la console afin d'observer le comportement obtenu :

js
// On définit ma_fav comme une constante// et on lui affecte la valeur 7// Généralement, par convention, les// constantes sont en majusculesconst MA_FAV = 7;// Cette réaffectation lèvera une exception TypeErrorMA_FAV = 20;// affichera 7console.log("mon nombre favori est : " + MA_FAV);// toute tentative de redéclaration renvoie une erreur// SyntaxError: Identifier 'MY_FAV' has already been declaredconst MA_FAV = 20;// le nom ma_fav est réservé par la constante ci-dessus// cette déclaration échouera donc égalementvar MA_FAV = 20;// cela renvoie également une erreurlet MA_FAV = 20;// On notera l'importance de la portée de bloc :if (MA_FAV === 7) {  // cela fonctionne sans problème et crée  // une nouvelle variable dans cette portée  let MA_FAV = 20;  // Ici, MA_FAV vaut 20  console.log("mon nombre préféré est " + MA_FAV);  // L'instruction suivante est remontée dans le  // contexte global et provoque une erreur !  var MA_FAV = 20;}// MA_FAV vaut toujours 7console.log("mon nombre favori est " + MA_FAV);// const nécessite une initialisationconst TOTO; // SyntaxError: Missing initializer in const// const fonctionne également avec les objectsconst monObjet = { clé: "valeur" };// Écraser l'objet échouera comme précédemmentmonObjet = { autreClé: "valeur" };// En revanche, les clés d'un objet ne sont pas// protégés et on peut donc, de façon valide, avoirmonObjet.clé = "autreValeur";// On utilisera Object.freeze() afin qu'un objet soit immuable// Il en va de même avec les tableauxconst mon_tableau = [];// On peut ajouter des éléments au tableaumon_tableau.push("A"); // ["A"]// Mais on ne peut pas affecter une nouvelle valeurmon_tableau = ["B"]; // lève une exception

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-let-and-const-declarations

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