Const de arreglo de JavaScript

ECMAScript 2015 (ES6)

En 2015, JavaScript introdujo una nueva palabra clave importante:const.

使用 const La declaración de array se ha convertido en una práctica común:

Ejemplo

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

亲自试一试

No se puede reasignar

const El array declarado no se puede reasignar:

Ejemplo

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

亲自试一试

El array no es una constante

Palabra clave const Es engañoso.

No define un array de constantes. Define una referencia constante al array.

Por lo tanto, aún podemos cambiar los elementos del array de constantes.

Los elementos pueden ser reasignados

Puede cambiar los elementos del array de constantes:

Ejemplo

// Puede crear un array de constantes:
const cars = ["Saab", "Volvo", "BMW"];
// Puede cambiar elementos:
cars[0] = "Toyota";
// Puede agregar elementos:
cars.push("Audi");

亲自试一试

Soporte del navegador

Internet Explorer 10 o versiones anteriores no soportan 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 而不初始化数组是一个语法错误:

Ejemplo

不起作用:

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

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

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

Ejemplo

没问题:

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

亲自试一试

const 块作用域

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

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

Ejemplo

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

亲自试一试

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

Ejemplo

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

亲自试一试

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

重新声明数组

在程序中的任何位置都允许用 var Redeclaración de array:

Ejemplo

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

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

Ejemplo

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

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

Ejemplo

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

Permitido usar en otro ámbito o en otro bloque const Redeclaración de array:

Ejemplo

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

Manual de referencia completo de array

Para obtener una referencia completa, por favor visite nuestra referencia completa Manual de referencia de Array de JavaScript.

Este manual incluye descripciones e instancias de todas las propiedades y métodos del array.