JavaScript Const

JavaScript Const

Contenido original de W3Schools


La palabra clave const se introdujo en ES6 (2015)

Las variables definidas con const no se pueden volver a declarar

Las variables definidas con const no se pueden reasignar

Las variables definidas con const tienen alcance de bloque


No se puede reasignar

Una variable const no se puede reasignar:

Ejemplo:

const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error

Ver ejemplo


Debe ser asignado

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

Correcto:

**const PI = 3.14159265359;**

Incorrecto:

const PI;
PI = 3.14159265359;

¿Cuándo utilizar JavaScript const?

Siempre declare una variable con const cuando sepa que el valor no debe cambiarse.

Utilice const cuando declare:

  • Una nueva matriz

  • Un nuevo objeto

  • Una nueva función

  • Una nueva expresión regular


Objetos constantes y matrices

La palabra clave const es un poco engañosa.

No define un valor constante. Define una referencia constante a un valor.

Por esto NO puedes:

  • Reasignar un valor constante

  • Reasignar una matriz constante

  • Reasignar un objeto constante

Pero puedes:

  • Cambiar los elementos de la matriz constante.

  • Cambiar las propiedades del objeto constante.


Matrices constantes

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


Pero NO puedes reasignar la matriz:

Ejemplo:

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

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

Ver ejemplo


Objetos constantes

Puedes cambiar las propiedades de un objeto constante:

Ejemplo:

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";

// You can add a property:
car.owner = "Johnson";

Ver ejemplo


Pero NO puedes reasignar el objeto:

Ejemplo:

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR

Ver ejemplo


Diferencias entre var, let y const

AlcanceRe-declararRe-asignarHoistedBinds this
varNoYesYesYesYes
letYesNoYesNoNo
constYesNoNoNoNo

¿Qué es mejor?

let y const tienen alcance de bloque.

let y const no se pueden volver a declarar.

let y const deben declararse antes de su uso.

let y const no se une a this.

let y const no es hoisted.


¿Qué NO es bueno?

var no es necesario declararlo.

var es hoisted.

var binds to this.


Soporte del navegador

Las palabras clave let y const no son compatibles con Internet Explorer 11 o versiones anteriores.

La siguiente tabla define las primeras versiones del navegador con soporte completo:

ChromeEdgeFirefoxSafariOpera
Chrome 49Edge 12Firefox 36Safari 11Opera 36
Mar, 2016Jul, 2015Jan, 2015Sep, 2017Mar, 2016

Alcance del bloque

Declarar una variable con const es similar a let cuando se trata de Block Scope.

La x declarada en el bloque, en este ejemplo, no es la misma que la x declarada fuera del bloque:

Ejemplo:

const x = 10;
// Here x is 10

{
const x = 2;
// Here x is 2
}

// Here x is 10

Ver ejemplo

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


Re-declaración

Se permite re-declarar una variable var de JavaScript en cualquier parte de un programa:

Ejemplo:

var x = 2;     // Allowed
var x = 3;     // Allowed
x = 4;         // Allowed

No se permite re-declarar una variable var o let existente como const, en el mismo ámbito:

Ejemplo:

var x = 2;     // Allowed
const x = 2;   // Not allowed

{
let x = 2;     // Allowed
const x = 2;   // Not allowed
}

{
const x = 2;   // Allowed
const x = 2;   // Not allowed
}

No se permite reasignar una variable const existente, en el mismo ámbito:

Ejemplo:

const x = 2;     // Allowed
x = 2;           // Not allowed
var x = 2;       // Not allowed
let x = 2;       // Not allowed
const x = 2;     // Not allowed

{
  const x = 2;   // Allowed
  x = 2;         // Not allowed
  var x = 2;     // Not allowed
  let x = 2;     // Not allowed
  const x = 2;   // Not allowed
}

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

Ejemplo:

const x = 2;       // Allowed

{
  const x = 3;   // Allowed
}

{
  const x = 4;   // Allowed
}

Hoisting

Las variables definidas con var se elevan a la parte superior y se pueden inicializar en cualquier momento.

Significado: puede utilizar la variable antes de declararla:

Ejemplo:

Esto está bien:

carName = "Volvo";
var carName;

Ver ejemplo


Si deseas obtener más información sobre hoisting, estudie el capítulo JavaScript Hoisting.

Las variables definidas con const también se elevan a la parte superior, pero no se inicializan.

Significado: el uso de una variable const antes de declararla dará como resultado ReferenceError:

Ejemplo:

alert (carName);
const carName = "Volvo";

Ver ejemplo


Traducido con 💚 desde W3Schools.com

Did you find this article valuable?

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