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