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)

programming code on computer screen code let y const

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 con let 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.


Avatar de darkusphantom

Sigueme en mis redes sociales para más contenido


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *