mozilla
Vos résultats de recherche

    const

    Cette fonction, proposition pour ECMAScript 6 (Harmony), est expérimentale
    Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
    Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

    La déclaration const permet de créer une constante nommée accessible uniquement en lecture.

    Syntaxe

    const nom1 = valeur1 [, nom2 = valeur2 [, ... [, nomN = valeurN]]];
    nomN
    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 quelle expression valide.

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

    Exemples

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

    // On définit ma_fav comme une constante
    // et on lui affecte la valeur 7
    const ma_fav = 7;
    
    // cette réaffectation échouera silencieusement dans Firefox et Chrome
    // mais n'échouera pas dans Safari
    ma_fav = 20;
    
    // affichera 7
    console.log("mon nombre favori est : " + ma_fav);
    
    // toute tentative de redéclaration renvoie une erreur
    const ma_fav = 20;
    
    // le nom ma_fav est réservé par la constante ci-dessus
    // cette déclaration échouera donc également
    var ma_fav = 20; 
    
    // ma_fav vaut toujours 7
    console.log("mon nombre favori est " + ma_fav);
    
    // Affecter une variable à une constante
    // est une erreur de syntaxe
    const a = 1; a = 2;
    
    // const nécessite une initialisation
    const foo; // SyntaxError: missing = in const declaration
    
    // const fonctionne également avec les objects
    const monObjet = {"clé": "valeur"};
    
    // Écraser l'objet échouera comme précédemment
    // (avec Firefox et Chrome mais pas avec Safari)
    monObjet = {"autreClé": "valeur"};
    
    // En revanche, les attributs d'un objet ne sont pas
    // protégés et on peut donc, de façon valide, avoir 
    monObjet.clé = "autreValeur";
    

    Spécifications

    Spécification Status Commentaires
    ECMAScript 6 (ECMA-262)
    La définition de 'Let and Const Declarations' dans cette spécification.
    En cours de validation comme recommandation Définition initiale.

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple ? 36.0 (voire antérieure) IE11 12.00 (voire antérieure) 5.1.7 (voire antérieure)

    Échec de la réaffectation

    20 13 (13) IE11 ? ?
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple ? ? ? ? ? ?
    Échec de la réaffectation ? ? ? ? ? ?

    Notes

    Dans les versions antérieures de Firefox et de Chrome, et pour Safari 5.1.7 et Opera 12.00, si une variable était définie avec const, il était toujours possible de modifier sa valeur après. Cette déclaration n'est pas supportée dans Internet Explorer 6-10 mais est incluse dans Internet Explorer 11.

    Notes spécifiques à Firefox

    La déclaration const a été implémentée dans Firefox bien avant que celle-ci fasse son apparition dans la spécification ECMAScript 6. Pour la mise aux normes de const par rapport à ES6, voir les bugs bug 950547 et bug 611388.

    • À partir de Gecko 36 (Firefox 36 / Thunderbird 36 / SeaMonkey 2.33):
      • {const a=1};a lève désormais une exception ReferenceError et ne renvoie plus 1 en raison de la portée de bloc.
      • const a; lève désormais une exception SyntaxError ("missing = in const declaration") : il est nécessaire d'initialiser le contenu de la constante.
      • const a = 1; a = 2; lève désormais une exception SyntaxError ("invalid assignment to const a").

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: fscholz, MattouFP, SphinxKnight
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale