freeCodeCamp/guide/portuguese/javascript/global-variables/index.md

67 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
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)