
Las expresiones const en javascript están sujetas a un alcance de bloque de la misma manera que las variables definidas mediante una expresión let
, pero el valor de las constantes no se puede cambiar por reasignación ni se pueden volver a declarar.
Características generales
Las constantes son globales o locales y están sujetas a su definición de dominio, pero las constantes globales no se convertirán en propiedades del objeto global a diferencia de las variables definidas mediante var
. Tenga en cuenta que es necesario inicializar el valor de la constante directamente, es decir, el valor debe proporcionarse en la misma expresión que declara la constante, lo que tiene sentido porque no es posible cambiar el valor de la constante más tarde.
Declarar constantes mediante const
creará una referencia de solo lectura a un valor. Esto no significa que el valor asociado con las constantes no sea modificable, sino que el identificador de la variable no se puede reasignar a un nuevo valor. Por ejemplo, si el valor asociado con la constante es un objeto, significa que el contenido del objeto (es decir, sus propiedades) se pueden modificar.
Estructura const en javascript
const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
nameN
El nombre de la constante y puede ser cualquier identificador JavaScript válido.
valueN
El valor de la constante, cualquier expresión válida se puede utilizar en JavaScript, incluidas las funciones.
Ejemplos y aplicaciones en código
El siguiente ejemplo demuestra el comportamiento de las constantes, pruébelo en la línea de comandos de su navegador (consola). Tenga en cuenta que podemos declarar constantes en mayúsculas o minúsculas, pero es una práctica común definir constantes en mayúsculas para que sean más fáciles de distinguir de las variables.
En el siguiente ejemplo, definiremos una constante con un nombre y le MY_FAX
daremos el valor 7
. Tenga en cuenta que intentar asignarle un nuevo valor arrojará un error, y una constante con el mismo nombre no se puede volver a declarar, y es no es posible crear variables (vía var
o let
) con el mismo nombre que la constante.
Es importante tener en cuenta cuál es el efecto de los dominios de bloque, es posible volver a declarar una variable (via let
) con el mismo nombre que la constante, pero las variables declaradas vía var
no serán específicas del campo de bloque y arrojará un error .
// Definir la constante y asignarla 7 const MY_FAV = 7; // Uncaught TypeError: Assignment to constant variable. MY_FAV = 20; // 7 console.log('my favorite number is: ' + MY_FAV); // Error de sintaxis no detectado: el identificador 'MY_FAV' ya ha sido declarado const MY_FAV = 20; // Este nombre está reservado para la constante y no se puede utilizar como variable var MY_FAV = 20; // tampoco permitido let MY_FAV = 20; // es importante notar el efecto de los campos de if (MY_FAV === 7) { // es posible crear una variable local con el mismo nombre que la constante let MY_FAV = 20; // 20 console.log('my favorite number is ' + MY_FAV); // Se producirá un error porque esta variable se var MY_FAV = 20; } // 7 console.log('my favorite number is ' + MY_FAV);
Recuerda que es necesario asignar un valor a la constante al declararla, de lo contrario se lanzará un error. Tenga en cuenta también que las constantes se pueden usar con objetos y se puede acceder a sus propiedades:
// Error de sintaxis no detectado: Falta el inicializador en la declaración const FOO; // Las constantes se pueden usar con objetos const MY_OBJECT = {'key': 'value'}; // Intentando asignar un nuevo objeto a la constante // Uncaught TypeError: Assignment to constant variable. MY_OBJECT = {'OTHER_KEY': 'value'}; // Pero las propiedades del objeto no están protegidas // Por lo que se puede hacer lo siguiente sin problemas MY_OBJECT.key = 'otherValue'; // Usa la función para hacer que el objeto sea inmutable Object.freeze () // lo mismo se aplica a las matrices const MY_ARRAY = []; // Es posible agregar nuevos elementos al arreglo MY_ARRAY.push('A'); // ["A"] // pero no puede asignarle una nueva matriz / Uncaught TypeError: Assignment to constant variable. MY_ARRAY = ['B'];
Soporte de navegadores
Característica | Chrome | Firefox | IE | Ópera | Safari |
---|---|---|---|---|---|
Soporte básico | 21 | 36 | 11 | sí | 5.1 |
- Arguments en JavaScript
- Array en JavaScript
- Break en JavaScript
- Características Boolean en JavaScript
- Características Infinity en JavaScript
- Características JSON en JavaScript
- Características NaN en JavaScript
- Características Undefined en JavaScript
- Constructor Function en JavaScript
- Constructor Object en JavaScript
- Continue en JavaScript
- Date en JavaScript
- Declaración vacía o empty en JavaScript
- Error en JavaScript
- EvalError en JavaScript
- Expresión const en JavaScript
- Expresión let en JavaScript
- Expresión throw en JavaScript
- Expresión try…catch en JavaScript
- Expresión var en JavaScript
- Expresiones if…else en JavaScript
- Función decodeURI() en JavaScript
- Función decodeURIComponent() en JavaScript
- Función encodeURI() en JavaScript
- Función encodeURIComponent() en JavaScript
- Función escape() en JavaScript
- Función eval() en JavaScript
- Función isFinite() en JavaScript
- Función isNaN() en JavaScript
- Función parseFloat() en JavaScript
- Función parseInt() en JavaScript
- Función Symbol en JavaScript
- Función unescape() en JavaScript
- Math en JavaScript
- Number en JavaScript
- Promise en JavaScript
- RangeError en JavaScript
- ReferenceError en JavaScript
- RegExp en JavaScript
- Sentencia block en JavaScript
- String en JavaScript
- Switch en JavaScript
- SyntaxError en JavaScript
- TypeError en JavaScript