Нет, люди используют «личное», потому что они ошибаются и должны сказать «локальные»
локальные переменные определены как
var foo = "local";
глобальные переменные - это свойства объекта глобальной области видимости (который в браузере равен window
)
window.foo = "global";
Тот факт, что вы можете сделать foo = "global";
без предварительного объявления переменной foo с var foo
, является "ошибкой".Это исправлено в строгом режиме ES5.
(function () { "use strict"; foo = 42; })()
дает ReferenceError: foo is not defined
Обратите внимание, что вы можете сделать переменные глобальными, объявив их в самой внешней области видимости
var foo = "global";
function bar() {
var foo = "local";
}
Следует отметить, что у вас никогда не должно быть кода во внешней области видимости.Вы должны обернуть всю свою область в анонимные функции, чтобы получить «область действия уровня модуля».Это означает, что у вас есть область верхнего уровня для каждого файла.Это часть шаблона модуля.