Const de JavaScript
- Página anterior JS Let
- Página siguiente Operadores JS
ECMAScript 2015
ECMAScript 2015 introdujo dos nuevas palabras clave importantes en JavaScript:let
y const
.
A través const
Las variables definidas son let
Las variables definidas son similares, pero no se pueden reasignar:
Ejemplo
const PI = 3.141592653589793; PI = 3.14; // Dará error PI = PI + 10; // También dará error
de ámbito de bloque
ende ámbito de bloqueusada const
La variable declarada es let
Las variables son similares.
En este ejemplo, x se declara en el bloque, diferente de x declarado fuera del bloque:
Ejemplo
var x = 10; // Aquí, x es 10 { const x = 6; // Aquí, x es 6 } // Aquí, x es 10
En el capítulo anterior Let de JavaScript En la escuela secundaria aprendí más sobre el ámbito de bloque.
Al declararse
JavaScript const
Las variables deben ser asignadas al declararse:
Incorrecto
const PI; PI = 3.14159265359;
Correcto
const PI = 3.14159265359;
No es una constante verdadera
Palabra clave const
Es un poco engañoso.
No define un valor constante. Define una referencia constante a un valor.
Por lo tanto, no podemos cambiar el valor original de la constante, pero podemos cambiar las propiedades del objeto constante.
Valor original
Si asignamos un valor original a una constante, no podemos cambiar el valor original:
Ejemplo
const PI = 3.141592653589793; PI = 3.14; // Dará error PI = PI + 10; // También dará error
El objeto constante puede cambiar
Puede cambiar las propiedades del objeto constante:
Ejemplo
// Puede crear un objeto const: const car = {type:"porsche", model:"911", color:"Black"}; // Puede cambiar las propiedades: car.color = "White"; // Puede agregar propiedades: car.owner = "Bill";
Pero no puede asignar valores a un objeto constante nuevamente:
Ejemplo
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // ERROR
Los arrays constantes pueden cambiar
Puede cambiar los elementos de un array constante:
Ejemplo
// Puede crear un array constante: const cars = ["Audi", "BMW", "porsche"]; // Puede cambiar elementos: cars[0] = "Honda"; // Puede agregar elementos: cars.push("Volvo");
Pero no puede asignar valores a un array constante nuevamente:
Ejemplo
const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // ERROR
Compatibilidad del navegador
Internet Explorer 10 o versiones anteriores no soportan const
Palabra clave.
La siguiente tabla define las versiones de los navegadores que soportan completamente la palabra clave const:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
Marzo de 2016 | Octubre de 2013 | Febrero de 2015 | Septiembre de 2016 | Marzo de 2016 |
Redeclarar
Se permite redeclarar JavaScript en cualquier posición del programa var
Variable:
Ejemplo
var x = 2; // Permitido var x = 3; // Permitido x = 4; // Permitido
No se permite redeclarar o asignar valores a una variable existente en el mismo ámbito o bloque: var
o let
Redeclarar o asignar valores nuevamente a una variable const
:
Ejemplo
var x = 2; // Permitido const x = 2; // No permitido { let x = 2; // Permitido const x = 2; // No permitido }
No se permite redeclarar o asignar valores a una variable const existente en el mismo ámbito o bloque:
Ejemplo
const x = 2; // Permite const x = 3; // No permitido x = 3; // No permitido var x = 3; // No permitido let x = 3; // No permitido { const x = 2; // Permite const x = 3; // No permitido x = 3; // No permitido var x = 3; // No permitido let x = 3; // No permitido }
declara de nuevo en otro ámbito o bloque const
Es permitido:
Ejemplo
const x = 2; // Permite { const x = 3; // Permite } { const x = 4; // Permite }
Hoisting
A través var
Las variables definidas seHoistingal nivel superior. Si no entiendes lo que es Hoisting, aprende sobre Hoisting en este capítulo.
Se puede usar la variable var antes de su declaración:
Ejemplo
carName = "Volvo"; // Se puede usar carName aquí var carName;
A través const
Las variables definidas no se elevan al nivel superior.
const
Las variables no pueden usarse antes de su declaración:
Ejemplo
carName = "Volvo"; // No se puede usar carName aquí const carName = "Volvo";
- Página anterior JS Let
- Página siguiente Operadores JS