[Entendiendo Variables en la Programación]
¡Hola HaWker! Jeff Bruchado por aquí.
Este es el tercer artículo de nuestra serie de artículos que va a cubrir nuestro viaje para Aprender Programación desde Cero.
Bueno, sin rodeos, ¡vamos a comenzar!
Dentro del universo de la programación, las variables tienen un papel fundamental. En JavaScript, ese papel es ampliado por su dinamicidad y versatilidad.
Este artículo tiene como objetivo elucidar qué son variables, cómo declararlas, y cómo se comportan dentro del ambiente JavaScript. JavaScript que es el lenguaje que elegimos para estudiar Programación desde Cero.
¿Qué son variables?
Variables, en términos simples, son "cajas" donde almacenamos valores. Imagina que posees una serie de cajones, y en cada uno de ellos, guardas un objeto diferente.
Las variables funcionan de manera similar, almacenando datos que pueden ser números, strings (texto), objetos, entre otros.

¿Cómo declarar variables y almacenar valores en ellas?
En JavaScript, tenemos varias formas de declarar variables, siendo las más comunes a través de las palabras clave var, let y const.
Cada una de ellas tiene sus peculiaridades:
- var: Era la forma tradicional de declarar variables antes de ES6. Las variables declaradas con var son, por defecto, elevadas (hoisting) y tienen scope de función.
- let: Introducido con ES6, permite declarar variables con scope de bloque, evitando muchos problemas relacionados con var.
- const: También de ES6, es usado para declarar constantes, es decir, valores que no pueden ser reasignados después de su declaración.
Bueno, si no entendiste bien la diferencia sobre cada una, en la duda utiliza let para variables cuyos valores pueden ser modificados después de la declaración, y const para variables cuyos valores no son alterados después de su declaración.
Pero NUNCA utilices var para declarar variables, como dije arriba, esa es la forma antigua de declarar variables, y no debe ser más utilizada.
¿Var, Let o Const? Una Cuestión de Inmutabilidad
Al elegir entre var, let y const, la inmutabilidad es una consideración importante.
Cuando declaras una variable con const, no solo estás diciendo que la variable no puede ser reasignada; estás haciendo una afirmación sobre la inmutabilidad:

Aunque podemos modificar el array declarado como constante, no podemos reasignar un nuevo valor a él.
Entendiendo Inicialización vs. Declaración
En JavaScript, es posible declarar una variable sin inicializarla:

Pero, podemos asignar un valor a ella más tarde:

Hoisting
Hoisting es un comportamiento peculiar de JavaScript que "mueve" declaraciones de variables hacia el tope de su scope.
En la práctica, significa que una variable puede ser utilizada antes de ser declarada.
Sin embargo, es una práctica recomendada declarar variables al inicio de su scope para prevenir confusiones.
Reglas de nomenclatura
Aunque JavaScript es un lenguaje flexible, existen algunas reglas para nombrar variables:
- Los nombres pueden contener letras, números, guiones bajos (_) y signos de dólar ($), pero no pueden comenzar con un número.
- No está permitido usar palabras clave del lenguaje como nombre de variable.
- Los nombres de variables son sensibles a mayúsculas y minúsculas, es decir, Nombre y nombre son diferentes.
- Es recomendado usar la convención camelCase para nombres de variables con más de una palabra.
Tipos de Datos en Variables
En la Programación y en JavaScript, las variables pueden almacenar diferentes tipos de datos.
Mientras algunas lenguajes exigen que declares explícitamente el tipo de dato de una variable, JavaScript es dinámicamente tipado. Esto significa que el tipo de dato de una variable puede cambiar durante la ejecución del programa. Algunos de los tipos más comunes incluyen:
- Number: Para números, sea entero o flotante.
- String: Para secuencias de caracteres.
- Boolean: Para valores verdadero o falso.
- Object: Para colecciones de datos o instancias de constructores.
- Undefined: Para variables no inicializadas.
- Null: Representa la ausencia de valor.
Variables Temporales con Template Strings
En este momento voy a explicar algo muy genial que tenemos disponible en JavaScript y en otros lenguajes de Programación también, como Python. Que son los Template Strings.
En lugar de concatenar variables en strings usando el signo de adición (+), el JavaScript moderno ofrece Template Strings para incrustar variables dentro de strings:

Esto facilita la lectura y formateo de textos que incluyen variables.
Operaciones con Variables
Otra cosa muy genial en la Programación, es que no estás limitado a solo almacenar valores en variables. También puedes ejecutar operaciones y tener el resultado de esas operaciones almacenado:

Scope de variables
Otro concepto que considero súper importante que entiendas, no necesariamente va a ser necesario en este instante, pero en el futuro vas a caer en algún caso de scope, ¡de eso estoy seguro!
Básicamente Scope de variables se refiere a la parte del código donde ella puede ser accedida. En JavaScript, tenemos básicamente tres scopes: global, de función y de bloque.
Scope Global (global scope)
Variables declaradas arriba o abajo de cualquier función o bloque pertenecen al scope global. Ellas pueden ser accedidas desde cualquier lugar del código, lo que, a veces, puede causar conflictos y errores inesperados.
Scope de función (function scope)
Variables declaradas dentro de una función usando var tienen scope de función. Esto significa que solo pueden ser accedidas dentro de aquella función.
Diferencia entre Scope Global y Scope de Función
La principal diferencia entre el scope global y de función es la accesibilidad.
Mientras las variables de scope global son accesibles en todo el código, las de scope de función están restringidas a la función donde fueron declaradas.
Con el advenimiento de ES6 y la introducción del let, también tenemos el scope de bloque, que limita el acceso a un determinado bloque de código, como loops y condicionales.
A continuación vamos a visualizar la diferencia en código entre los scopes.
Función vs. Bloque: Visualizando Scopes
Bueno, como comenté arriba, JavaScript ES6 introdujo let y const, que tienen scope de bloque.
A continuación te voy a mostrar la diferencia entre scope de función y scope de bloque:

Conclusión
Pues bien HaWker, como puedes percibir, este es un artículo bien denso, y de extrema importancia.
Entender variables es crucial para dominar la Programación y JavaScript, o cualquier otro lenguaje de programación.
Al comprender las particularidades de declaración, hoisting y scope, estarás más preparado para escribir códigos limpios, eficientes y sin errores.
¡Y recuerda, estoy aquí para ayudarte en cada paso del camino!
¡Sensacional HaWker! 👏🏻
Llegamos al fin de nuestro tercer artículo. 😮💨
Y si llegaste hasta aquí, por favor, responde este email con "¡Conseguí entender variables!". Para así yo saber que esta serie de artículos está siendo útil para ti.
Si quedaste con alguna duda, ¡por favor! Siéntete libre de responder este email con tu duda, será un gran placer ayudarte.
Solamente un verdadero HaWker llega hasta el final.
¡Felicitaciones!
Estoy feliz de tenerte aquí.
Te veo pronto, ¡vamos a por ello! 🦅
- Jeff Bruchado
¡Felicitaciones por llegar hasta aquí, HaWker! 🎉
En este momento que aprendiste sobre variables en la programación y sus diversas particularidades, ¿qué tal testear tus conocimientos? Participa del quiz abajo y ve cuánto absorbiste de nuestro artículo.
Es una excelente manera de fijar el aprendizaje y prepararte para los próximos pasos en tu viaje de programación.
Presiona para acceder al quiz.
¡Buena suerte y diviértete!

