Declaración de Variables en JavaScript

Author
By Darío Rivera
Posted on 2020-09-05 in Javascript

En un post anterior vimos el abanico de Tipos de Datos en JavaScript de los cuales disponemos. El día de hoy veremos que para declarar variables en JavaScript de cualquier tipo podemos utilizar las palabras reservadas let, var y const.

Reglas para el nombrado de variables

Case-Sensitivity: Todos los nombres de variables son sensibles a mayúsculas y minúsculas, lo cual indica que la variable num es distinta a la variable Num.

Label-Rule: Las variables deben comenzar con una letra, un guión al piso ( _ ) o el caracter dolar ( $ ), seguido de una combinación de letras, números, guiones al piso o signos de dólar.

Not-Keyword: Las nombres de variables no puedes ser iguales a una palabra reservada del lenguaje Java.

const

La palabra reservada const se utiliza para declarar variables que no pueden cambiar su valor a lo largo del script. Esta manera de declarar variables está disponible desde ECMAScript 6.

const pi = 3.1416;

Una constante no puede ser redeclarada dentro del mismo scope. Si intentaramos declarar nuevamente esta variable obtendríamos el siguiente error:

const pi = 3.1416;
Uncaught SyntaxError: Identifier 'pi' has already been declared

Una constante tampoco puede ser reasignada. Si lo hicieramos obtendríamos un error como el siguiente:

pi = 5;
Uncaught TypeError: Assignment to constant variable.

Es una buena práctica nombrar las constantes conocidos antes de la ejecución en mayúsculas para acentuar el hecho de que son constantes y que su valor no puede cambiar.

const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";

Las constantes que puedan surgir dentro del programa y que solo se conozca su valor en tiempo de ejecución se deberían nombrar en camel case como cualquier otra variable.

const pageLoadTime = /* some value not known before execution */;

var

La palabra reservad var se utiliza para declarar una variable en cualquier momento de manera global. Es la keyword más utilizada ya que era la forma antigua de declarar variables hasta ECMAScript 5.

var maxAttempts = 30;

A diferencia de la declaración con const, es posible primero declarar una variable y posteriormente inicializarla con un valor. El ejemplo anterior pudiera reescribirse así:

var maxAttempts;
maxAttempts = 30;

Además de esto, es posible redeclarar la misma variable en cualquier punto del script.

var maxAttempts = 50;

También, es posible reasignar una variable creada con var después de su inicialización.

maxAttempts = 60;

El alcance de una variable declarada con var es global. Esto quiere decir que una vez declarada se puede llamar desde cualquier otro punto del script. Es por esto mismo que actualmente no se recomienda utilizar var.

let

La palabra reservada let se utiliza para declarar variables con scope. Esta manera de declarar variables está disponible desde ECMAScript 6.

let userName = 'John Doe';

A diferencia de la declaración con const, es posible primero declarar una variable y posteriormente inicializarla con un valor. El ejemplo anterior pudiera reescribirse así:

let userName;
userName = 'John Doe';

Una variable declarada con let no puede ser redeclarada en su scope. Si intentaramos declarar nuevamente una variable obtendríamos un error como el siguiente:

let userName = 'John Doe';
Uncaught SyntaxError: Identifier 'userName' has already been declared

Sin embargo, es posible reasignar una variable creada con let después de su inicialización.

userName = 'Steave Jobs';

El alcance o scope de una variable declarada con let es de bloque.

A continuación el resumen de todo lo dicho anteriomente en una sola tabla.

redeclaraciónreasignaciónscope
varSiSiGlobal
letNoSiBloque
constNoNoBloque

Si quieres profundizar un poco más en el tema del scope te recomiendo el artículo Diferencia entre Let y Var en JavaScript. Hasta pronto!


Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.