Variables en JavaScript: var, const y let
Una variable es una referencia a un valor. En las versiones de JavaScript anteriores a ES6, las variables se declaran con la palabra clave var.
A partir de ES6 se introdujeron dos nuevas palabras clave para definir variables: const y let.
Veamos algunos ejemplos:
var x = 1;
var y = true;
var z = 'Aprendiendo JavaScript';
En la nueva sintaxis de JavaScript desde ECMAScript 6 en adelante, utilizamos las nuevas palabras clave:
let x = 2;
let y = false;
let z = 'EcmaScript 6';
const a = 3;
const b = true;
const c = 'Una cadena de texto';
La diferencia entre let y const radica en que las variables declaradas con const no pueden ser reasignadas otro valor luego de declararlas. Ejemplo:
let valor1 = 10;
valor1 = 25; // el valor de variable 'valor1' cambió a 25
const valor2 = 30;
valor2 = 40; // error
Es importante la elección correcta entre let y const de manera que podamos comunicarle mejor nuestras intenciones al próximo programador que lea el código.
Personalmente, recomiendo utilizar con mayor frecuencia const, y dejar let únicamente para aquellos casos en que el valor de la variable será modificado posteriormente, como por ejemplo dentro de bucles for o algunas operaciones matemáticas.
Una vez declaradas las variables y asignado su valor, podemos utilizarlas de diferentes formas, por ejemplo para operaciones aritméticas:
const a = 40;
const b = 30;
const c = a + b; // c ahora equivale a 70
let d = c / 2; // d equivale ahora 35
Diferencias entre var, const y let
| Palabra Clave | Ámbito | Reasignable | Redeclarable |
|---|---|---|---|
| var | Función | Si | Si |
| let | Bloque | Si | No |
| const | Bloque | No | No |
Si tienes dudas sobre el Hoisting en JavaScript te lo explico en mi post sobre el tema.
Cómo nombrar una variable
Al elegir el nombre de una variable debemos tener en cuenta ciertas reglas y limitaciones.
- Los nombres de una variable sólo pueden contener letras, números,
_, y$; - No pueden comenzar con un número;
- Distinguen mayúsculas y minúsculas, es decir que
xyXserán variables diferentes; - No se permite usar ciertas palabras reservadas de JavaScript, es decir las que poseen un significado especial, como por ejemplo
if,for,break,function, etc;