67 lines
3.7 KiB
Markdown
67 lines
3.7 KiB
Markdown
---
|
||
title: Global Variables
|
||
localeTitle: Глобальные переменные
|
||
---
|
||
Глобальные переменные объявляются вне функции для доступности всей программы, в то время как локальные переменные хранятся в функции , используя `var` для использования только в пределах этой функции в [объеме](https://developer.mozilla.org/en-US/docs/Glossary/Scope) . Если вы объявите переменную без использования `var` , даже если она находится внутри функции, она будет по-прежнему рассматриваться как глобальная:
|
||
|
||
```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);
|
||
}
|
||
```
|
||
|
||
Глобальная переменная также является объектом текущей области, такой как окно браузера:
|
||
|
||
```javascript
|
||
var dog = “Fluffy”;
|
||
console.log(dog); //Fluffy;
|
||
|
||
var dog = “Fluffy”;
|
||
console.log(window.dog); //Fluffy
|
||
```
|
||
|
||
Рекомендуется минимизировать глобальные переменные. Поскольку переменную можно получить в любом месте программы, они могут вызвать странное поведение.
|
||
|
||
Рекомендации:
|
||
|
||
* [var -Javascript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)
|
||
* [Вы не знаете JavaScript: области и закрытие](https://github.com/getify/You-Dont-Know-JS/tree/master/scope%20%26%20closures)
|
||
|
||
Дополнительная информация:
|
||
|
||
* [Рекомендации по использованию JavaScript: избегайте глобальных](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
|
||
|
||
## \* В [чем разница между глобальным var и window.variable в javascript?](https://stackoverflow.com/questions/6349232/whats-the-difference-between-a-global-var-and-a-window-variable-in-javascript)
|
||
|
||
Объем переменных JavaScript является глобальным или локальным. Глобальные переменные объявляются НАРУЖНОЙ функцией, и ее значение доступно / изменено в течение всей программы.
|
||
|
||
Вы должны ВСЕГДА использовать **var,** чтобы объявить свои переменные (сделать локально), иначе он установит GLOBALY
|
||
|
||
Будьте осторожны с глобальными переменными, потому что они рискованны. Большую часть времени вы должны использовать закрытие для объявления переменных. Пример:
|
||
|
||
```javascript
|
||
(function(){
|
||
var myVar = true;
|
||
})();
|
||
```
|
||
|
||
#### Дополнительная информация:
|
||
|
||
* [Рекомендации по использованию JavaScript: избегайте глобальных](http://www.w3.org/wiki/JavaScript_best_practices#Avoid_globals)
|
||
* [Глобальные переменные плохи](http://c2.com/cgi/wiki?GlobalVariablesAreBad)
|
||
* [MDN - глобальные переменные](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var) |