S
eguramente estás acostumbrado a la declaración de variables utilizando la palabra reservada var
, que bien saben que su ámbito puede ser en algunos casos globales, excepto cuando se declaran dentro de funciones.
Si declaramos una variable con let
solo será accesible dentro del bloque donde se encuentra.
Miremos unos ejemplos:
// Declaramos variables globales
var p = 5;
var m = 7;
// If es igual 5
// Cambiamos valores de las variables
if( p = 5 ) {
var p = 10;
var m = 13;
// imprimos las variables en la consola
console.log( p, m ); // 10, 13
}
// imprimos las variables en la consola
// fuera del if
console.log( p, m ); // 10, 13
// Iteramos sobre las mismas variables
for( var p = 1; p < 2; p++ ) {
var m = 20;
// imprimos las variables en la consola
console.log( p, m ); // 1, 20
}
// imprimos las variables en la consola
// fuera del for en la consola
console.log( p, m ); // 2, 20
Con el ejemplo anterior nos dimos cuenta que las 2 variables p
y m
, cambiaron muchas veces durante la ejecución del programa. Ahora probemos las variables declarándolas con let
'use stric' // Obligatorio modo estricto para el uso de let
// Declaramos variables globales
var p = 5;
var m = 7;
// If es igual 5
// Tratamos de cambiar valores de las variables con let
if( p = 5 ) {
let p = 10;
let m = 13;
// imprimos las variables en la consola
console.log( p, m ); // 10, 13
}
// imprimos las variables en la consola
// fuera del if
console.log( p, m ); // 5, 7
// Iteramos sobre las mismas variables con let
for( let p = 1; p < 2; p++ ) {
let m = 20;
// imprimos las variables en la consola
console.log( p, m ); // 1, 20
}
// imprimos las variables en la consola
// fuera del for en la consola
console.log( p, m ); // 5, 7
Si se dieron cuenta, esta vez las variables internas dentro de los if
y for
declarandolas con let
, no hicieron efecto con las variables del entorno global, lo que quiere decir que con let
, declaramos nuestras variables para que no sean accesibles fuera de su ámbito.