
Una variable es un contenedor de un valor de un tipo dado al que le damos un identificador. El valor de una variable puede cambiar en el tiempo. También existen las constantes que, al contrario de las variables, su valor no puede cambiar.
Para nombrar una variable o constante sólo podemos utilizar caracteres alfanuméricos [a-zA-Z0-9]
y el caracter de subrayado _
. No debe comenzar por un número. Tampoco podemos utilizar como identificador una palabra reservada ya que nos daría error. Es conveniente que los nombres, o los identificadores que les damos, sean descriptivos e informen del cometido de dicha variable para que nuestro código sea legible y entendible. También es conveniente seguir la convención lower camel case en la que se utilizan minúsculas para nombrarlas y si es la unión de varias palabras éstas se unen y se distingue entre palabras utilizando la primera letra en mayúscula.
Antes de utilizar una variable deberemos declararla y luego darle un valor, ya que si no su valor será undefined
.
Para declarar constantes y variables debemos utilizar las palabras reservadas const
, var
y let
(la primera para las constantes y las otras para las variables en las que ahora nos detendremos).
const pi = 3.14;
var edad = 18;
let nombre = "Bob Esponja";
La palabra var declara una variable y se sigue utilizando por motivos históricos ya que genera algunos problemas que viene a solucionar let.
Debido al hoisting, era posible declarar una variable con var
después de ser utilizada y eso funcionaba. Por ejemplo:
edad = 18;
...
...
var edad;
Ese código era válido, pero la verdad es que se hace confuso y más complejo de entender. Pues el hoisting ya no funciona con let
, por lo que para utilizar una variable que vamos a declarar con let
, primero debemos declararla o de lo contrario nos dará un error.
let edad;
...
edad = 18;
Además con el uso de var
, una variable se podía declarar varias veces y era correcto, pero como ves en el ejemplo vuelve a ser confuso.
var edad = 18;
....
var edad = 20;
Eso con let
ya no funciona y habría que hacerlo de la siguiente forma:
let edad = 18;
....
edad = 20;
JavaScript es un lenguaje "débilmente tipado", lo cual significa que, a diferencia de otros lenguajes, no es necesario especificar el tipo de dato que vamos a almacenar en una variable y además éste puede cambiar. Esto deberíamos evtarlo para evitar confusiones.
let edad;
edad = '18'; // En este caso contiene una cadena
edad = 18; // En este caso contiene un número