Const tableau JavaScript
ECMAScript 2015 (ES6)
en 2015, JavaScript a introduit un nouveau mot-clé important : const
.
Il est devenu courant de déclarer des tableaux en utilisant const
:
Exemple
const cars = ["Saab", "Volvo", "BMW"];
Ne peut pas être réaffecté
Un tableau déclaré avec const
ne peut pas être réaffecté :
Exemple
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Les tableaux ne sont pas des constantes
Le mot-clé const
est un peu trompeur.
Il ne définit PAS un tableau constant. Il définit une référence constante à un tableau.
Pour cette raison, nous pouvons toujours modifier les éléments d'un tableau constant.
Les éléments peuvent être réaffectés
Vous pouvez modifier les éléments d'un tableau constant :
Exemple
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Prise en charge du navigateur
Le const
mot-clé n'est pas pris en charge dans Internet Explorer 10 ou version antérieure.
Le tableau suivant définit les premières versions de navigateur avec prise en charge complète du mot- const
clé :
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Attribué lors de la déclaration
Les variables JavaScript const
doivent être valorisées lors de leur déclaration :
Signification : Un tableau déclaré avec const
doit être initialisé lors de sa déclaration.
Utiliser const
sans initialiser le tableau est une erreur de syntaxe :
Exemple
Cela ne fonctionnera pas :
const cars;
cars = ["Saab", "Volvo", "BMW"];
Les tableaux déclarés avec var
peuvent être initialisés à tout moment.
Vous pouvez même utiliser le tableau avant qu'il ne soit déclaré :
Exemple
C'est acceptable:
cars = ["Saab", "Volvo", "BMW"];
var cars;
Portée du bloc Const
Un tableau déclaré avec const
a Block Scope .
Un tableau déclaré dans un bloc n'est pas identique à un tableau déclaré en dehors du bloc :
Exemple
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
Un tableau déclaré avec var
n'a pas de portée de bloc :
Exemple
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
Vous pouvez en savoir plus sur Block Scope dans le chapitre : JavaScript Scope .
Redéclarer des tableaux
La redéclaration d'un tableau déclaré avec var
est autorisée n'importe où dans un programme :
Exemple
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // Allowed
La redéclaration ou la réaffectation d'un tableau à const
, dans la même portée ou dans le même bloc, n'est pas autorisée :
Exemple
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}
La redéclaration ou la réaffectation d'un const
tableau existant, dans la même portée ou dans le même bloc, n'est pas autorisée :
Exemple
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}
Redéclarer un tableau avec const
, dans une autre portée, ou dans un autre bloc, est autorisé :
Exemple
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}
Référence complète de la baie
Pour une référence Array complète, rendez-vous sur :
Référence complète du tableau JavaScript .
La référence contient des descriptions et des exemples de toutes les propriétés et méthodes Array.