Escopo en JavaScript

Sérgio Lopes
Sérgio Lopes
Compartir

Imagen1

Todo el mundo sabe que una variable local es... local:

function(){ var i = 0; } alert(i); // no funciona

¿Pero eso es todo?

if (algunaCosa){ var i = 0; } alert(i); 

¿Una variable declarada dentro del if será visible fuera de él? ¡Sí!

JavaScript solo tiene alcance de función (escopo de función) y escopo global( alcance global). No tiene alcance de bloque. Es decir, if no define un ámbito aislado.

Debes tener cuidado de no confundirte en algunos escenarios. Por ejemplo, dos for simples:

for (var i = 0; i < 10; i++) { ... } 
for (var i = 10; i > 0; i--) { ... } 

Ambos están jugando con la misma variable i, después de todo, for tampoco define un alcance o escopo. Debemos tener cuidado de no cometer estos errores.

El nuevo ES6 FINALMENTE define el alcance del bloque o escopo de bloque en el lenguaje. Es con la palabra clave let:

if (algunaCosa){ let i = 0; } alert(i);

Es bueno saberlo, pero el soporte aún es débil en todos los navegadores.

ff41e839cab613a02a5c96c6165e3a31 jpeg

Sérgio Lopes

Sérgio es director y jefe de squad de varios equipos del Grupo Caelum, graduado en Informática por la USP. Es reconocido por su trabajo en Front-end, Performance, Mobile y Arquitectura de Software y cuenta con una amplia experiencia en la docencia, tanto presencial como online. Gestiona los proyectos internos de la empresa y trabaja en la definición del rumbo de los productos y de la empresa en general.

Este articulo fue adecuado para Alura Latam por: Jose Charris

Sérgio Lopes

Sérgio Lopes

Sérgio é diretor e líder do time de diversos times no Grupo Caelum, formado em Ciência da Computação pela USP. É reconhecido por sua atuação em Front-end, Performance, Mobile e Arquitetura de software e tem vasta experiência com ensino, tanto presencial quanto online. Gerencia os projetos internos da empresa e atua na definição de rumos dos produtos e da empresa em geral.

Ver otros artículos sobre Front-end

Whatsapp de Alura LATAMNewsletter de Alura LATAMContáctanos
Escopo en JavaScript | Alura Cursos Online