MEJOR SITIO PARA DESARROLLADORES WEB

Basic JavaScript

JS Tutorial JS Syntax JS Variables JS Operators JS If Conditions JS Loops JS Strings JS Numbers JS Functions JS Objects JS Dates JS Arrays JS Sets JS Maps JS Math JS RegExp JS Data Types JS Errors JS Debugging JS Events JS Programming JS References JS UTF-8 Characters

JS Advanced

JS Versions JS Functions JS Objects JS Classes JS Iterations JS Promises JS Modules JS HTML DOM JS Windows JS Web API JS AJAX JS JSON JS jQuery JS Graphics JS Examples JS Objects

JavaScript. W3Schools en español. Lecciones para principiantes

Ua En De Fr Ru

JavaScript Const palabra clave

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;      // Esto dará un error
PI = PI + 10;   // Esto también dará un error
Try it Yourself »

Debe ser asignado

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

Correcto

const PI = 3.14159265359;

Incorrecto

const PI;
PI = 3.14159265359;

¿Cuándo utilizar JavaScript constante?

Como regla general, declare siempre una variable con const a menos que sepa que el valor cambiará.

Utilice const cuando declare:

  • Una nueva matriz
  • Un nuevo objeto
  • Una nueva función
  • Una nueva RegExp

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.

Debido a 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

// Puedes crear una matriz constante:
const cars = ["Saab", "Volvo", "BMW"];

// Puedes cambiar un elemento:
cars[0] = "Toyota";

// Puedes agregar un elemento:
cars.push("Audi");
Try it Yourself »

Pero NO puedes reasignar la matriz:

Ejemplo

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

cars = ["Toyota", "Volvo", "Audi"];    // ERROR
Try it Yourself »

Objetos constantes

Puedes cambiar las propiedades de un objeto constante:

Ejemplo

// Puedes crear un objeto constante:
const car = {type:"Fiat", model:"500", color:"white"};

// Puedes cambiar una propiedad:
car.color = "red";

// Puedes agregar una propiedad:
car.owner = "Johnson";
Try it Yourself »

Pero NO puedes reasignar el objeto:

Ejemplo

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

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

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:

Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
Mar, 2016 Oct, 2013 Feb, 2015 Sep, 2016 Mar, 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;
// Aquí x es 10

{
const x = 2;
// Aquí x es 2
}

// Aquí x es 10
Try it Yourself »

Puede obtener más información sobre el alcance del bloque en el capítulo Alcance de JavaScript.


Redeclaración

Se permite redeclarar una variable var de JavaScript en cualquier parte de un programa:

Ejemplo

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

Redeclarar una variable var o let existente a const, en el mismo ámbito, no se permite:

Ejemplo

var x = 2;     // Permitido
const x = 2;   // No permitido

{
let x = 2;     // Permitido
const x = 2;   // No permitido
}

{
const x = 2;   // Permitido
const x = 2;   // No permitido
}

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

Ejemplo

const x = 2;     // Permitido
x = 2;           // No permitido
var x = 2;       // No permitido
let x = 2;       // No permitido
const x = 2;     // No permitido

{
  const x = 2;   // Permitido
  x = 2;         // No permitido
  var x = 2;     // No permitido
  let x = 2;     // No permitido
  const x = 2;   // No permitido
}

Se permite redeclarar una variable con const, en otro alcance o en otro bloque:

Ejemplo

const x = 2;       // Permitido

{
  const x = 3;   // Permitido
}

{
  const x = 4;   // Permitido
}

Elevación constante

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;
Try it Yourself »

Si quieres aprender más sobre izado, estudia el capítulo Elevación con JavaScript.

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 una ReferenceError:

Ejemplo

alert (carName);
const carName = "Volvo";
Try it Yourself »


Comentarios