El estandar actual de JavaScript tiene variables, constantes y niveles de bloque.
Variables de bloque:
En ES6 se agrega una nueva forma de definir variables usando la palabra let
, se diferencia de var
en que el scope de una variable definida con let
es, el bloque en el cual se encuentra la variable y no la función.
1let x = 'Hola kEnAi'; 2 3if (true) { 4 let x = 'Hola Jon'; 5 console.log(x); // Imprime en consola Hola Jon 6} 7 8console.log(x); // Imprime en consola Hola kEnAi 9 10for (let i = 0; i < 5; i++) { 11 console.log(i); // Imprime del 0 al 4 12}; 13 14console.log(i); // Imprime Uncaught ReferenceError: i is not defined
Constantes:
Una constante es un tipo INMUTABLE, no puede cambiar una vez definida, se usa la palabra const
en lugar de var
, al igual que let
su scope
es de bloque, son tipos de sólo lectura y se le debe asignar un valor en el momento de su declaración. Son referencias inmutables, pero sus valores no necesariamente, por ejemplo en los objetos y arreglos se pueden agregar, modificar o eliminar elementos y propiedades de los mismos, siempre y cuando el objeto o arreglo no cambie de tipo de dato.
1const DIEZ = 10; 2DIEZ = 5; 3console.log(DIEZ); // Imprime Uncaught TypeError: Assignment to constant variable 4 5const hola = 'hola mundo'; 6hola = 'hola mundo'; // Imprime Uncaught TypeError: Assignment to constant variable 7 8const PI; 9PI = 3.141592653589793; //Imprime Missing initializer in const declaration 10 11const obj = {}; 12obj.prop = 'x'; 13console.log(obj); //Imprime { prop: 'x' } 14obj.prop = 'y'; 15console.log(obj); //Imprime { prop: 'y' } 16 17const D = document; 18console.log(D); //Imprime el objeto document 19console.log(D.documentElement); //Imprime el elemento <html>
Nivel de Bloques:
En ES5 los ámbitos de declaración (scope
) estaban diseñados a nivel de funciones, con ES6 podemos declarar funciones a nivel de bloque.
En ES6, como en muchos otros lenguajes de programación, el bloque se define entre llaves y genera un nuevo scope
(block scope
).
1//Sin bloques 2function f() { return 1; } 3 4console.log( f() ); //Imprime 2 5 6function f() { return 2; } 7 8console.log( f() ); //Imprime 2 9 10console.log( f() ); //Imprime 2 11 12//Con bloques 13function f() { return 1; } 14 15{ 16 console.log( f() ); //Imprime 2 17 18 function f() { return 2; } 19 20 console.log( f() ); //Imprime 2 21} 22 23console.log( f() ); //Imprime 1
Recuerda que en EDteam tenemos varios cursos que te introducen y especializan en este maravilloso lenguaje:
- JavaScript desde cero
- Node.js desde cero
- JavaScript Avanzado: Paradigmas de Programación
- HTML5 Avanzado: Progressive Web Apps
- React desde cero
- Angular desde cero
- Vue.js desde cero
En el siguiente capítulo te hablare de las plantillas de cadenas mejor conocidas como templates strings.
Artículos anteriores de la serie 'El estándar actual de JavaScript':
Se despide su amigo y docente digital Jonathan MirCha, sean felices, hasta siempre, nos leemos la próxima semana. Bye ?