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.
letsolo será accesible dentro del bloque donde se encuentra.
// 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
py
m[/cod]e, 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
ify [cod]for[/cod] declarandolas con [cod]let[/cod], 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.