Escopo Global x Escopo Local
Uau, mas o que seria uma variável dentro do escopo? Vamos com calma agora:
No JavaScript existem somente dois tipos de escopos: escopo global e local. Quando se trata de escopo de variável estamos nos referindo a qual local de nosso código uma determinada variável pode ser acessada.
Entendendo melhor o que acontece…
Variável Global
Uma variável global é definida quando declaramos uma variável fora de qualquer função, assim ela torna acessível a qualquer parte da nossa aplicação, podendo ser lida e alterada.
Variável local
Uma variável local é definida quando declaramos uma variável dentro de uma função, assim ela torna acessível somente dentro da função onde ela foi declarada.
Conclusão:
Se tentarmos printar uma variável de escopo local fora de seu escopo, ou seja, no escopo local você recebera um erro:
Esse erro significa que você não tem acesso a essa variável nesse escopo, isso somente por ela estar dentro de um função que faz parte do escopo local.