Los tipos de datos son básicamente variables o constantes.
- Las variables pueden ser cambiadas
- Las constantes siguen siendo las mismas.
Hablemos sobre var
Las variables en JavaScript son contenedores que contienen datos reutilizables. Es comun inicializar variables de esta forma:
var algo;
Los valores o tipos de datos que podemos asignar a una variable son:
- String
- Number
- Boolean
- Null
- Undefined
- Array / Object
Ejemplo:
var nombre = 'Angel'; // String
var edad = 40; // Number
var hijos = true | false; // Boolean
var telefono = null; // Null
var negro; // Undefined
var arreglo = ['a','b','c',]; // Array
var objeto = {
nombre: 'Angel',
edad: 40,
};
Como declarar una variable:
- Los nombres deben comenzar con una cadena en minúscula.
- Los nombres no pueden contener símbolos o comenzar con símbolos.
- Los nombres no pueden comenzar con un número.
- Los nombres pueden contener una combinación de cadenas en mayúsculas, cadenas en minúsculas y números.
Algo importante a tener en cuenta es que los valores de las variables declaradas con var pueden ser actualizables
var name = 'Angel';
console.log(name); // Angel
var name = 'Chris';
console.log(name); // Chris
El scope de var
Es importante tener en cuenta el alcance (scope) de una variable declarada con var. Ejemplo, si tenemos declarada la siguiente variable:
var name = 'Angel';
La misma tiene un alcance global y puede ser utilizada donde se necesite.
¿Que pasa cuando usamos una función?
Acá el scope de la variable declarada con var cambia ya que solo tiene acceso dentro de la función donde fue declarada, ejemplo:
function sayMyName() {
var name = 'Angel';
console.log(name);
}
sayMyName();
Efectivamente va a funcionar ya que veremos el output en la consola de desarrollo, a esto se le conoce como function scope
Si quisiéramos acceder a la variable name fuera de la función vamos a recibir un error de variable no definida
Y ya por último, halaremos sobre block scope
Por ejemplo:
var age = 100;
if (age > 12) {
var dogYears = age * 7;
console.log('Tienes ' + dogYears + ' años de perro') // Tienes 700 años de perro
}
A diferencia de function scope con los block scope ocurre algo interesante y es que se pueden acceder a las variables que esten dentro de {}. Si vamos a nuestra consola y escribimos dogYears vamos a tener como resultado el valor 700
Hablemos sobre let y const
Las variables declaradas con let y const son del tipo block scope
Por ejemplo:
var age = 100;
if (age > 12) {
let dogYears = age * 7;
console.log('Tienes ' + dogYears + ' años de perro') // Tienes 700 años de perro
}
Lo de arriba funciona exactamente igual, la única diferencia estaría en el momento de acceder a la variable dogYears vamos a obtener un error de variable no declarada ya que la variable declarada con let sólo se puede acceder y usar dentro de {} y esto también ocurre si cambiamos let por const.