Const de tableaux JavaScript

ECMAScript 2015 (ES6)

En 2015, JavaScript a introduit un nouveau mot-clé important :const.

使用 const Déclarer un tableau est devenu une pratique courante :

Exemple

const cars = ["Saab", "Volvo", "BMW"];

亲自试一试

Aucune réaffectation possible

const Un tableau déclaré ne peut pas être réaffecté :

Exemple

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // ERREUR

亲自试一试

Un tableau n'est pas constant

Mot-clé const Il est quelque peu trompeur.

Il ne définit pas un tableau constant. Il définit une référence constante à l'array.

Par conséquent, 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

// Vous pouvez créer un tableau constant :
const cars = ["Saab", "Volvo", "BMW"];
// Vous pouvez modifier des éléments :
cars[0] = "Toyota";
// Vous pouvez ajouter des éléments :
cars.push("Audi");

亲自试一试

Support du navigateur

Internet Explorer 10 或更早的版本不支持 const 关键字。

下表注明了完全支持 const 关键字的首个浏览器版本:

Chrome IE Firefox Safari Opera
Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
2016 年 3 月 2013 年 10 月 2015 年 2 月 2016 年 9 月 2016 年 3 月

声明时赋值

JavaScript const 变量在声明时必须赋值:

意思是:用 const 声明的数组必须在声明时进行初始化。

使用 const 而不初始化数组是一个语法错误:

Exemple

不起作用:

const cars;
cars = ["Saab", "Volvo", "BMW"];

var 声明的数组可以随时初始化。

您甚至可以在声明之前使用该数组:

Exemple

没问题:

cars = ["Saab", "Volvo", "BMW"];
var cars;

亲自试一试

const 块作用域

const 声明的数组具有块作用域.

在块中声明的数组与在块外声明的数组不同:

Exemple

const cars = ["Saab", "Volvo", "BMW"];
// 此处 cars[0] 为 "Saab"
{
  const cars = ["Toyota", "Volvo", "BMW"];
  // 此处 cars[0] 为 "Toyota"
}
// 此处 cars[0] 为 "Saab"

亲自试一试

var 声明的数组没有块作用域:

Exemple

var cars = ["Saab", "Volvo", "BMW"];
// 此处 cars[0] 为 "Saab"
{
  var cars = ["Toyota", "Volvo", "BMW"];
  // 此处 cars[0] 为 "Toyota"
}
// 此处 cars[0] 为 "Toyota"

亲自试一试

您可以在以下章节中学习更多关于块作用域的内容:Portée JavaScript.

重新声明数组

在程序中的任何位置都允许用 var Redéclaration du tableau :

Exemple

var cars = ["Volvo", "BMW"];   // 允许
var cars = ["Toyota", "BMW"];  // 允许
cars = ["Volvo", "Saab"];      // 允许

不允许在同一作用域或同一块中将数组重新声明或重新赋值给 const

Exemple

var cars = ["Volvo", "BMW"];         // 允许
const cars = ["Volvo", "BMW"];       // 不允许
{
  var cars = ["Volvo", "BMW"];         // 允许
  const cars = ["Volvo", "BMW"];       // 不允许
}

不允许在同一作用域或同一块中重新声明或重新赋值现有的 const 数组:

Exemple

const cars = ["Volvo", "BMW"];       // Autorisé
const cars = ["Volvo", "BMW"];       // 不允许
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é
}

Autorisé à être utilisé dans un autre scope ou dans un autre bloc const Redéclaration du tableau :

Exemple

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

Manuel de référence complet des tableaux

Pour une référence complète, veuillez visiter notre Manuel de référence Array JavaScript.

Ce manuel contient des descriptions et des exemples de toutes les propriétés et méthodes des tableaux.