67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
|
---
|
|||
|
title: Global Variables
|
|||
|
localeTitle: Variáveis globais
|
|||
|
---
|
|||
|
Variáveis globais são declaradas fora de uma função para acessibilidade em todo o programa, enquanto variáveis locais são armazenadas dentro de uma função usando `var` para uso somente dentro do [escopo](https://developer.mozilla.org/en-US/docs/Glossary/Scope) dessa função. Se você declarar uma variável sem usar `var` , mesmo que esteja dentro de uma função, ela ainda será vista como global:
|
|||
|
|
|||
|
```javascript
|
|||
|
var x = 5; //global
|
|||
|
function someThing(y) {
|
|||
|
var z = x + y;
|
|||
|
console.log(z);
|
|||
|
}
|
|||
|
|
|||
|
function someThing(y) {
|
|||
|
x = 5; //still global!
|
|||
|
var z = x + y;
|
|||
|
console.log(z);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
function someThing(y) {
|
|||
|
var x = 5; //local
|
|||
|
var z = x + y;
|
|||
|
console.log(z);
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
Uma variável global também é um objeto do escopo atual, como a janela do navegador:
|
|||
|
|
|||
|
```javascript
|
|||
|
var dog = “Fluffy”;
|
|||
|
console.log(dog); //Fluffy;
|
|||
|
|
|||
|
var dog = “Fluffy”;
|
|||
|
console.log(window.dog); //Fluffy
|
|||
|
```
|
|||
|
|
|||
|
É uma prática recomendada minimizar as variáveis globais. Como a variável pode ser acessada em qualquer lugar do programa, elas podem causar um comportamento estranho.
|
|||
|
|
|||
|
Referências:
|
|||
|
|
|||
|
* [var -Javascript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)
|
|||
|
* [Você não sabe JavaScript: escopos e fechamentos](https://github.com/getify/You-Dont-Know-JS/tree/master/scope%20%26%20closures)
|
|||
|
|
|||
|
Informação adicional:
|
|||
|
|
|||
|
* [Melhores Práticas JavaScript: Evite Globals](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
|
|||
|
|
|||
|
## \* [Qual é a diferença entre um var global e uma janela.variável em javascript?](https://stackoverflow.com/questions/6349232/whats-the-difference-between-a-global-var-and-a-window-variable-in-javascript)
|
|||
|
|
|||
|
O escopo das variáveis JavaScript é global ou local. As variáveis globais são declaradas FORA da função e seu valor é acessível / modificável em todo o programa.
|
|||
|
|
|||
|
Você deve sempre usar **var** para declarar suas variáveis (para fazer localmente) senão ele irá instalar GLOBALLY
|
|||
|
|
|||
|
Tome cuidado com as variáveis globais porque elas são arriscadas. Na maioria das vezes você deve usar encerramentos para declarar suas variáveis. Exemplo:
|
|||
|
|
|||
|
```javascript
|
|||
|
(function(){
|
|||
|
var myVar = true;
|
|||
|
})();
|
|||
|
```
|
|||
|
|
|||
|
#### Mais Informações:
|
|||
|
|
|||
|
* [Melhores Práticas JavaScript: Evite Globals](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
|
|||
|
* [Variáveis globais são ruins](http://c2.com/cgi/wiki?GlobalVariablesAreBad)
|
|||
|
* [MDN - Variáveis Globais](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)
|