
Em JavaScript, as variáveis têm um alcance a que se chama scope. É uma noção importante em JavaScript, porque é fonte frequente de erros: consoante o sítio onde declaras a variável, o scope muda. Se a declarares dentro de uma função, só pode ser usada nessa função. Há dois tipos de variáveis, as variáveis locais e as variáveis globais.
var tutu = "tutu"; // 1
function maFonction() {
var toto = "toto"; // 2
return toto;
}- tutu tem um scope a que se chama variável global: pode ser usada em qualquer ponto do script, incluindo dentro de uma função.
- toto também tem um scope, mas é uma variável local: não pode ser usada fora da sua função.
Variável local
Quando crias uma variável dentro de uma função com var, ela só pode ser usada nessa função. Diz-se então que a variável é local, ou que o seu alcance é o da função onde foi declarada. Não pode ser lida fora dela. O navegador cria as variáveis locais quando a função é executada e elimina-as assim que a função termina o seu trabalho. Retém ainda o seguinte:
- Duas funções diferentes podem usar variáveis com o mesmo nome sem criar qualquer conflito de nomes.
- Se a função for chamada várias vezes, a variável pode ter um valor diferente de cada vez.
Variável global
As variáveis globais podem ser usadas em qualquer ponto do script e declaram-se fora de qualquer função. Diz-se que têm alcance global.
As variáveis globais ficam guardadas em memória no navegador. Ocupam por isso mais memória do que as locais e aumentam o risco de conflitos de nomes com outros scripts. É por isso que deves privilegiar as variáveis locais sempre que possível.


