JavaScript имеет «область действия функции», что означает, что все, что определено в функции, не видно вне функции.Таким образом, переменная 'a' не видна за пределами test2.Тем не менее, переменная 'b' является глобальной переменной, поэтому она видна в любой области видимости.
Область действия функции также означает, что внутренние функции получают доступ к вещам, определенным во внешней функции, но которые не вступают в действие здесь... test1 вызывается из внутри test2, но это не внутренняя функция test2.Чтобы увидеть это в действии, вам нужно определить тело функции test1 внутри test2 ...
function test2(){
var a = 'a';//Defining a
test1();//Calling test1()
function test1(){
alert(a);//a is identified here because of function scope
alert(b);//b is identified here because it's global
}
}