JavaScript Array Const

JavaScript Array Const

Contenido original de W3Schools


ECMAScript 2015 (ES6)

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

Se ha convertido en una práctica común declarar matrices usando const:

Ejemplo:

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

Ver ejemplo


No se puede reasignar

Una matriz declarada con const no se puede reasignar:

Ejemplo:

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

Ver ejemplo


Las matrices no son constantes

La palabra clave const es un poco engañosa.

NO define una matriz constante. Define una referencia constante a una matriz.

Debido a esto, aún podemos cambiar los elementos de una matriz constante.


Los elementos se pueden reasignar

Puedes cambiar los elementos de una matriz constante:

Ejemplo:

// 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");

Ver ejemplo


Soporte del navegador

La palabra clave const no es compatible con Internet Explorer 10 o versiones anteriores.

La siguiente tabla define las primeras versiones del navegador con soporte completo para la palabra clave const:

ChromeEdgeFirefoxSafariOpera
Chrome 49IE 11 / EdgeFirefox 36Safari 10Opera 36
Mar, 2016Oct, 2013Feb, 2015Sep, 2016Mar, 2016

Asignado cuando se declara

A las variables const de JavaScript se les debe asignar un valor cuando se declaran:

Significado: una matriz declarada con const debe inicializarse cuando se declara.

Usar const sin inicializar la matriz es un error de sintaxis:

Ejemplo:

Esto no funcionará:

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

Las matrices declaradas con var se pueden inicializar en cualquier momento.

Incluso puedes usar la matriz antes de declararla:

Ejemplo:

Esto funcionará:

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

Ver ejemplo


Alcance del bloque constante

Una matriz declarada con const tiene alcance de bloque.

No es lo mismo un array declarado en un bloque que un array declarado fuera del bloque:

Ejemplo:

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"

Ver ejemplo

Una matriz declarada con var no tiene alcance de bloque:

Ejemplo:

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"

Ver ejemplo

Puedes obtener más información sobre Block Scope en el capítulo: JavaScript Scope.


Re-declaración de matrices

Se permite re-declarar una matriz declarada con var en cualquier parte de un programa:

Ejemplo:

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

No se permite re-declarar o reasignar una matriz a const, en el mismo alcance o en el mismo bloque:

Ejemplo:

var cars = ["Volvo", "BMW"];     // Allowed
const cars = ["Volvo", "BMW"];   // Not allowed
{
  var cars = ["Volvo", "BMW"];   // Allowed
  const cars = ["Volvo", "BMW"]; // Not allowed
}

No se permite re-declarar o reasignar una matriz const existente, en el mismo alcance o en el mismo bloque:

Ejemplo:

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
}

Se permite re-declarar una matriz con const, en otro alcance o en otro bloque:

Ejemplo:

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

Referencia completa de matrices JavaScript

Para obtener una referencia completa de Array, vaya a:

Referencia completa de matrices de JavaScript.

La referencia contiene descripciones y ejemplos de todas las propiedades y métodos de Array.


Traducido con 💚 desde W3Schools.com

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!