Const JavaScript

Le const
mot-clé a été introduit dans ES6 (2015).
Variables définies avec const
ne peut pas être redéclaré.
Variables définies avec const
ne peut pas être réaffecté.
Variables définies avec const
ont une portée de bloc.
Ne peut pas être réaffecté
UN const
la variable ne peut pas être réaffectée :
Exemple
PI const = 3,141592653589793 ;
PI = 3,14 ; // Cela donnera une erreur
PI = PI + 10 ; // Cela donnera également une erreur
Essayez-le vous-même »
Doit être attribué
Javascript const
les variables doivent être valorisées lors de leur déclaration :
Correct
PI const = 3,14159265359 ;
Incorrect
PI const ;
PI = 3,14159265359 ;
Quand utiliser JavaScript const ?
Déclarez toujours une variable avec const
lorsque vous savez que la valeur ne doit pas être modifiée.
Utiliser const
lorsque vous déclarez :
- Un nouveau tableau
- Un nouvel objet
- Une nouvelle fonction
- Une nouvelle RegExp
Objets constants et tableaux
Le mot clé const
est un peu trompeur.
Il ne définit pas une valeur constante. Il définit une référence constante à une valeur.
Pour cette raison, vous ne pouvez PAS :
- Réaffecter une valeur constante
- Réaffecter un tableau constant
- Réaffecter un objet constant
- Changer les éléments du tableau constant
- Modifier les propriétés de l’objet constant
Mais tu peux:
Tableaux constants
Vous pouvez modifier les éléments d’un tableau constant :
Exemple
// Vous pouvez créer un tableau constant :
const voitures = [« Saab », « Volvo », « BMW »];
// Vous pouvez modifier un élément :
voitures[0] = « Toyota » ;
// Vous pouvez ajouter un élément :
voitures.push(« Audi »);
Essayez-le vous-même »
Mais vous ne pouvez PAS réaffecter le tableau :
Exemple
const voitures = [« Saab », « Volvo », « BMW »];
voitures = [« Toyota », « Volvo », « Audi »]; // ERREUR
Essayez-le vous-même »
Objets constants
Vous pouvez modifier les propriétés d’un objet constant :
Exemple
// Vous pouvez créer un objet const :
const car = {type: »Fiat », model: »500″, color: »white »} ;
// Vous pouvez modifier une propriété :
car.color = « rouge »;
// Vous pouvez ajouter une propriété :
car.owner = « Johnson » ;
Essayez-le vous-même »
Mais vous ne pouvez PAS réaffecter l’objet :
Exemple
const car = {type: »Fiat », model: »500″, color: »white »} ;
voiture = {type : »Volvo », modèle : »EX60″, couleur : »rouge »} ; // ERREUR
Essayez-le vous-même »
Prise en charge du navigateur
Le const
mot-clé n’est pas entièrement pris en charge dans Internet Explorer.
Le tableau suivant définit les premières versions de navigateur avec prise en charge complète des const
mot-clé:
Chrome 49 | Bord 12 | Firefox 36 | Safari 11 | Opéra 36 |
mars 2016 | juillet 2015 | février 2015 | Septembre 2017 | mars 2016 |
Portée du bloc
Déclarer une variable avec const
est similaire à let
Quand cela vient à Portée du bloc.
Le x déclaré dans le bloc, dans cet exemple, n’est pas le même que le x déclaré en dehors du bloc :
Exemple
constante x = 10 ;
// Ici x vaut 10
{
const x = 2 ;
// Ici x vaut 2
}
// Ici x vaut 10
Essayez-le vous-même »
Vous pouvez en savoir plus sur la portée des blocs dans le chapitre Portée JavaScript.
Redéclarer
Redéclarer un JavaScript var
variable est autorisée n’importe où dans un programme :
Exemple
var x = 2 ; // Autorisé
var x = 3 ; // Autorisé
x = 4 ; // Autorisé
Redéclarer un existant var
ou let
variable à const
dans le même périmètre, n’est pas autorisé :
Exemple
var x = 2 ; // Autorisé
const x = 2 ; // Interdit
{
soit x = 2 ; // Autorisé
const x = 2 ; // Interdit
}
{
const x = 2 ; // Autorisé
const x = 2 ; // Interdit
}
Réaffecter un existant const
variable, dans la même portée, n’est pas autorisée :
Exemple
const x = 2 ; // Autorisé
x = 2 ; // Interdit
var x = 2 ; // Interdit
soit x = 2 ; // Interdit
const x = 2 ; // Interdit
{
const x = 2 ; // Autorisé
x = 2 ; // Interdit
var x = 2 ; // Interdit
soit x = 2 ; // Interdit
const x = 2 ; // Interdit
}
Redéclarer une variable avec const
dans une autre portée, ou dans un autre bloc, est autorisé :
Exemple
const x = 2 ; // Autorisé
{
const x = 3 ; // Autorisé
}
{
constante x = 4 ; // Autorisé
}
Levage
Variables définies avec var
sont hissé vers le haut et peut être initialisé à tout moment.
Signification : Vous pouvez utiliser la variable avant qu’elle ne soit déclarée :
Si vous voulez en savoir plus sur le levage, étudiez le chapitre JavaScript Hoisting.
Variables définies avec const
sont également hissés vers le haut, mais non initialisés.
Signification : Utiliser un const
variable avant qu’elle ne soit déclarée entraînera une
ReferenceError
:
#Const #JavaScript