| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/const | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
Las variables constantes presentan un mbito de bloque (block scope) tal y como lo hacen las variables definidas usando la instruccin let, con la particularidad de que el valor de una constante no puede cambiarse a travs de la reasignacin. Las constantes no se pueden redeclarar.
Advertencia:
La redeclaracin de la misma variable bajo un mismo mbito lxico terminara en un error de tipo SyntaxError. Esto tambin es extensible si usamos var dentro del mbito lxico. Esto nos salvaguarda de redeclarar una variable accidentalmente y que no era posible solo con var.
const varname1 = value1 [, varname2 = value2 [, varname3 = value3 [, ... [, varnameN = valueN]]]];
varnameNNombre de la constante. Puede ser un identificador legal.
valueNValor de la constante. Puede ser cualquier expresin legal.
Esta declaracin crea una constante cuyo alcance puede ser global o local para el bloque en el que se declara. Es necesario inicializar la constante, es decir, se debe especificar su valor en la misma sentencia en la que se declara, lo que tiene sentido, dado que no se puede cambiar posteriormente.
La declaracin de una constante crea una referencia de slo lectura. No significa que el valor que tiene sea inmutable, sino que el identificador de variable no puede ser reasignado, por lo tanto, en el caso de que la asignacin a la constante sea un objeto, el objeto s que puede ser alterado.
Una constante no puede compartir su nombre con una funcin o variable en el mismo mbito.
Todas las consideraciones acerca de la " zona muerta temporal " se aplican tanto a let y const.
Advertencia:
const ~~es~~ fue una extensin especifica de Mozilla, no ~~es~~ era soportado en IE, pero ~~tiene~~ tenia soporte parcial por Opera desde la versin 9.0 y por Safari.
El siguiente ejemplo produce una salida "a es 7."
const a = 7;
document.writeln("a es " + a + ".");
Las siguientes instrucciones demuestra como se comporta const
Advertencia: Las instrucciones debern ser ordenadas correctamente para conseguir la salida esperada a los ejemplos
// NOTA: Las constantes pueden ser declaradas en mayusculas o minusculaas,
//pero por convencion para distinguirlas del resto de variables se escribe todo en mayusculas
// definimos MY_FAV como constante y le damos un valor de 7
const MY_FAV = 7;
// lanzara un error: Unkeught TypeError: Asignacin a variable constante.
MY_FAV = 20;
// imprimira 7
console.log("my favorite number is: " + MY_FAV);
// lanzara un error: SyntaxError: tratando de redeclarar una constante. El identificador 'MY_FAV' ya ha sido declarado
const MY_FAV = 20;
// el nombre MY_FAV esta reservado para la constante anterior, tambin fallara y lanzara un SyntaxError por la redeclaracin
var MY_FAV = 20;
// el nombre MY_FAV esta reservado para la variable anterior, esto tambin lanzara un SyntaxError por la redeclaracin
let MY_FAV = 20;
// es importante tener en cuenta como funciona el alcance de bloque
if (MY_FAV === 7) {
// esto esta bien y crea una variable MY_FAV de alcance/ambito de bloque
// (funciona igual de bien con let para declarar un alcance de bloque/ambito de variable no-constante)
const MY_FAV = 20;
// MY_FAV ahora es 20
console.log("my favorite number is " + MY_FAV);
// aqun tambin lanzara un SyntaxError por la redeclaracin
var MY_FAV = 20;
}
// MY_FAV todavia es 7
console.log("my favorite number is " + MY_FAV);
// lanza error, falta el inicializador en la declaracion de const
const FOO;
// const tambien funciona en objetos
const MY_OBJECT = { key: "value" };
// Intentando sobrescribir el objeto nos lanza un error
MY_OBJECT = { OTHER_KEY: "value" };
// Sin embargo, los object keys no estan protegidas,
// por lo que la siguiente sentencia se ejecutara sin problema
MY_OBJECT.key = "otherValue"; // Use Object.freeze() para hacer un objeto inmutable
// Lo mismo se aplica a los arrays
const MY_ARRAY = [];
// es posible empujar elementos en el array
MY_ARRAY.push("A"); // ["A"]
// Sin embargo, asignar un nuevo array a la variable lanza error
MY_ARRAY = ["B"];
This page was last modified on 29 may 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |