Existe varias formas de declarar variables en Javascript: var, let y const, ¿pero cuál es la diferencia en cada una?
Quiero enseñarte en este post acerca de cada una en la declaración de variables, la diferencia entre ellas, su ventajas y desventajas.
Scope (alcance)
El alcance se refiere hasta donde se puede acceder la declaración de variable en el programa.
Para las declaraciones de variable en JavaScript, el alcance de var
es el ámbito de función, es decir, es visible dentro de la función en la que se declara, incluyendo cualquier función anidada dentro de ella.
Por otro lado, el alcance de let
y const
es el bloque, lo que significa que la variable solo es visible dentro del bloque en el que se declara, incluyendo cualquier bloque anidado dentro de él.
Es importante tener en cuenta el alcance al declarar variables porque afecta la legibilidad del código y evitar colisiones de nombres.
Var
La palabra clave var
se utilizaba antes para declarar variables en JavaScript. Hoy en dia se utiliza let o const. La declaración de variables con var
tiene algunas peculiaridades que pueden llevar a comportamientos inesperados.
Por ejemplo, una de sus principales características es que tiene un alcance de función, lo que permite que la variable sea accesible dentro de la función en la que se declara. Fuera de esa función, la declaración se comporta de manera diferente.
var pokemonType = "Fire";
console.log(pokemonType); // Output: Fire
function doSomething() {
var pokemonType = "Water";
}
doSomething();
console.log(pokemonType); // Output: Water
Ventajas
- Alcance de función: Son accesibles en toda la función en la que se declaran.
- Hoisting: Son elevadas al inicio del ámbito en el que se declaran y no se pueden utilizar antes de su declaración.
Desventajas
- Alcance global: Si se declara fuera de una función, se convierte en una variable global, lo que genera conflictos de nombres y problemas de mantenimiento.
- Reasignación inadvertida: Pueden ser reasignadas sin generar ningún error, lo que dificulta el seguimiento de los cambios en el código.
var pokemonType = "Fire";
console.log(pokemonType); // Output: Fire
function doSomething() {
pokemonType = "Water";
}
doSomething();
console.log(pokemonType); // Output: Water
Let
Con la introducción de let
en ES6 solucionó algunas de las limitaciones de var
.
La palabra clave let permite declarar variables con un alcance de bloque, en otras palabras, la variable solo es accesible dentro del bloque en el que se declara.
Esto proporciona un mayor control sobre el alcance de las variables y evita problemas como las fugas de variables.
let dorime = "Dorime"
console.log(dorime) // Dorime
dorime = "Ameno"
console.log(dorime) // Ameno
Ventajas
- Alcance de bloque: Tienen un alcance limitado al bloque, lo que evita colisiones de nombres y facilita el mantenimiento del código.
- No se permite la redeclaración: Si se intenta declarar dos veces la misma variable con
let
en el mismo ámbito, se generará un error.
Desventajas
- No permite hoisting: A diferencia de
var
, las variables declaradas conlet
no se elevan al inicio del ámbito, por lo que no se pueden utilizar antes de su declaración.
let dorime = "Dorime";
function doSomething() {
let dorime = "Ameno";
console.log(dorime);
}
doSomething(); // Uncaught SyntaxError: Identifier has already been declared
console.log(dorime); // Dorime
Const
Por último tenemos a const
, que tiene una una característica adicional: una vez que se asigna un valor, a ese valor no puede ser modificado.
Esto significa que las variables declaradas con const
son constantes y no se pueden reasignar.
Es importante tener en cuenta que esto solo se aplica al valor en sí, no a las propiedades de un objeto o a los elementos de un array.
const dorime = "Dorime"
dorime = "Ameno" // Uncaught TypeError: Assignment to constant variable.
Ventajas
- Inmutabilidad: Garantiza que su valor no va a cambiar a lo largo del programa.
- Mejor legibilidad: El uso de
const
en variables que no deben ser modificadas a lo largo del código ayuda a comprender mejor la intención del programador.
Desventajas
- No permite reasignación: Una vez que se asigna un valor a una variable «const», no se puede cambiar, lo que puede ser limitante en ciertos escenarios donde se requiere modificar el valor de una variable.
const dorime = "Dorime"
const dorime = "Jose Roberto" // Uncaught SyntaxError: Identifier 'dorime' has already been declared
Conclusión
En resumen, la elección entre «var», «let» y «const» depende del alcance y la mutabilidad que se desea en las variables.
Aunque var
sigue siendo utilizado en menor medida en la actualidad debido a sus peculiaridades, let
y const
ofrecen un mayor control sobre el alcance y la inmutabilidad de las variables. Let es útil cuando se necesita reasignar valores, mientras que «const» es ideal para variables que no deben cambiar.
Espero que este post te haya sido útil para comprender las diferencias entre var
, let
y const
y el impacto que influye en el alcance de las variables. No olvides compartir y seguirme en redes sociales para más contenido.
Sigueme en mis redes sociales para más contenido