В следующем эксперименте у нас есть одна "внешняя" функция outerFunction() и две внутренние функции, а также две переменных. Первая из них объявлена в начале внешней функции, вторая - тоже во внешней, но между внутренними функциями.
function outerFunction(){
var testVar1 = 'test1';
innerFunction1();
innerFunction2();
function innerFunction1(){
console.log('InnerFunction1() has been executed')
}
var testVar2 = 'test2';
function innerFunction2(){
console.log('testVar1: '+testVar1);
console.log('testVar2: '+testVar2);
}
}
outerFunction();
Если мы посмотрим в консоль, то увидим, что testvar2 имеет тип undefined. Тоже самое будет, если объявить эту переменную в конце внешней функции.
Я правильно понял, что сначала инициализируются переменные, идущие в начале внешней функции, далее - внутренние функции? Едва ли объявление переменной textVar2 стилистически верно, но всё же: когда она будет проинициализирована?
return– vp_arth Feb 28 '17 at 03:13