Const de 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"];
Essayez-le vous-même »

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"]; // ERREUR
Essayez-le vous-même »

Les tableaux ne sont pas des constantes

Le mot-clé const peut prêter à confusion.

Il ne définit PAS un tableau constant, mais une référence constante à un tableau.

De ce fait, nous pouvons toujours changer les éléments d'un tableau déclaré avec const .


Les éléments peuvent être réaffectés

Vous pouvez changer les éléments d'un tableau constant :

Exemple

// Vous pouvez créer un tableau constant :
const cars = ["Saab", "Volvo", "BMW"];

// Vous pouvez changer un élément :
cars[0] = "Toyota";

// Vous pouvez ajouter un élément :
cars.push("Audi");
Essayez-le vous-même »

Assigné lors de la déclaration

Les variables JavaScript const doivent être assignées à une valeur lors de leur déclaration :

Cela signifie qu'un tableau déclaré avec const doit être initialisé au moment de sa déclaration.

Utiliser const sans initialiser le tableau entraîne 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

Cela est OK :

cars = ["Saab", "Volvo", "BMW"];
var cars;
Essayez-le vous-même »

Portée de bloc de const

Un tableau déclaré avec const a une portée de bloc .

Un tableau déclaré dans un bloc n'est pas le même qu'un tableau déclaré en dehors de ce bloc :

Exemple

const cars = ["Saab", "Volvo", "BMW"];
// Ici cars[0] est "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Ici cars[0] est "Toyota"
}
// Ici cars[0] est "Saab"
Essayez-le vous-même »

Un tableau déclaré avec var n'a pas de portée de bloc :

Exemple

var cars = ["Saab", "Volvo", "BMW"];
// Ici cars[0] est "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Ici cars[0] est "Toyota"
}
// Ici cars[0] est "Toyota"
Essayez-le vous-même »

Vous pouvez en savoir plus sur la portée de bloc dans le chapitre : Portée JavaScript .



Redéclaration 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"]; // Autorisé
var cars = ["Toyota", "BMW"]; // Autorisé
cars = ["Volvo", "Saab"]; // Autorisé

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"]; // Autorisé
const cars = ["Volvo", "BMW"]; // Non autorisé
{
var cars = ["Volvo", "BMW"]; // Autorisé
const cars = ["Volvo", "BMW"]; // Non autorisé
}

La redéclaration ou la réaffectation d'un tableau const existant, dans la même portée ou dans le même bloc, n'est pas autorisée :

Exemple

const cars = ["Volvo", "BMW"]; // Autorisé
const cars = ["Volvo", "BMW"]; // Non autorisé
var cars = ["Volvo", "BMW"]; // Non autorisé
cars = ["Volvo", "BMW"]; // Non autorisé

{
const cars = ["Volvo", "BMW"]; // Autorisé
const cars = ["Volvo", "BMW"]; // Non autorisé
var cars = ["Volvo", "BMW"]; // Non autorisé
cars = ["Volvo", "BMW"]; // Non autorisé
}

La redéclaration d'un tableau avec const , dans une autre portée ou dans un autre bloc, est autorisée :

Exemple

const cars = ["Volvo", "BMW"]; // Autorisé
{
const cars = ["Volvo", "BMW"]; // Autorisé
}
{
const cars = ["Volvo", "BMW"]; // Autorisé
}

Référence complète des tableaux

Pour une référence complète des tableaux, rendez-vous sur notre :

Référence complète des tableaux JavaScript

La référence contient des descriptions et des exemples de toutes les propriétés et méthodes des tableaux.