Показать сообщение отдельно
  #2 (permalink)  
Старый 04.07.2016, 14:36
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

ibahob,

на момент выполнения строки "b = b + a;" в переменной b двойка, переменная "a" здесь используется самая внутренняя (при выполнении кода объявления переменных через var переносятся в начало функции), но значение а равно undefined, т.к. 3 ей ещё не присвоилось.

Т.е. на самом деле функция summ выполнится так:
function summ() {
  var b, a; // объявили переменные, они равны undefined
  b = 2;
  b = b + a; // 2 + undefined
  a = 3;
  return b;
}

Последний раз редактировалось Яростный Меч, 04.07.2016 в 14:38.
Ответить с цитированием