Accede a todo EDteam con un único pago¡Sube a premium con -50%!

Variables, constantes y scope de bloque en JavaScript

document.location.replace('https://ed.team/comunicado-01-2019') 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.

Diseño web
2 minutos
Hace 6 años
Variables, constantes y scope de bloque en JavaScript

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:

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':

  1. ECMAScript el estándar de JavaScript
  2. Babel

Se despide su amigo y docente digital Jonathan MirCha, sean felices, hasta siempre, nos leemos la próxima semana. Bye ?

Comentarios de los usuarios

Pregunta a ChatEDT