•  
     

Variáveis Globais vs Locais - JavaScript

Vamos falar sobre um conceito importante: escopo. O escopo pode ser global ou local.

Variáveis definidas fora de uma função são acessíveis em qualquer lugar, depois de serem declaradas. Elas são chamadas variáveis globais e seu escopo é global.

Por exemplo:

Código: Selecionar todos

var globalVar = "alo";

var foo = function() {
    console.log(globalVar);  // prints "alo"
}

A variável globalVar pode ser acessada em qualquer lugar, mesmo dentro da função foo.

Variáveis definidas dentro de uma função são variáveis locais. elas não podem ser acessadas fora daquela função.

Por exemplo:

var bar = function() {
var localVar = "howdy";
}

console.log(localVar); // error
A variável localVar existe apenas dentro da função bar. Tentar exibir localVar fora da função gera um erro.

Verifique o código no editor. Até agora você vem usado a palavra reservada var sem realmente compreender o porquê. A palavra reservada var cria uma nova variável no escopo atual. Isso significa que se var for usada fora de uma função, essa variável tem um escopo global. Se var for usado dentro de uma função, essa variável tem um escopo local.


Código: Selecionar todos

var my_number = 7; //esta tem escopo global

var timesTwo = function(number) {
var my_number = number * 2;
    console.log("Dentro da função my_number é: ");
    console.log(my_number);
}; 

timesTwo(7);

console.log("Fora da funçao my_number é: ")
console.log(my_number);

Dentro da função my_number é: 14
Fora da funçao my_number é: 7