Я новичок в JavaScript и я делал некоторые практики на локальные и глобальные переменные области, ниже приведен мой код([скрипка][1]):
в
var myname = "initial"
function c(){
alert(myname);
var myname = "changed";
alert(myname);
}
c();
в
когда первое предупреждение называется, она показывает моеимя
как определено. так что мое недоумение почему я не могу получить доступ к глобальной экземпляр моеимя
и если я не'т определить моеимя `` внутри функции, то она будет работать нормально.
В JavaScript переменная деклараций могут быть автоматически перемещены в верхней части функции. Таким образом, переводчик будет выглядеть примерно так:
в
var myname = "initial"
function c(){
var myname;
// alerts undefined
alert(myname);
myname = "changed";
// alerts changed
alert(myname);
}
c();
в
Это называется 'поднимая'.
Из-за подъема и тот факт, что возможности для любой переменной является функция'ы объявили, это's для стандартной практикой перечислить все переменные в верхней части функции, чтобы избежать этой путаницы.
Это не заменить глобальную переменную. То, что происходит-это называется "переменной поднимая глаз". То есть, ВАР моеимя;` подставляется в верхней части функции. Всегда инициализируйте переменные перед их использованием
в
var myname = "initial";
function c() {
alert(myname);
myname = "changed";
alert(myname);
}
c();
в