Сообщение от danik.js
			 
		
	 | 
	
		Пошагово, это вот так: 
  
Видим значения переменных, стек вызовов (можем по ним ходить) выполняем код по строчке.
	 | 
	
Благодарю за ответ.
Вопросы:
1. Что именно Вы имели ввиду, под "это чтобы показать что глобальные переменные отслеживать неудобно и за них следует отрывать руки"? 
Разве у меня там, где-то, была глобальная переменная?
2. Зачем переменная g = 0 ?
3. Я правильно понимаю, что необходимо ставить точку останова и только после этого, будет доступна возможность выполнять в конкретном месте код пошагово? 
4. 
function sumTo(n) 
  {
console.log("bla 1 относится к " + n);
  if (n == 1) return n;
console.log("bla 2 относится к " + n);
res=sumTo(n-1) + sumTo(n-1); 
console.log("bla 3 относится к " + n);
return res;
    }
document.write( sumTo(2) );
Начинаю прокручивать в инструментах разработчика в google chrome:
console.log("bla 1 относится к " + n);
  if (n == 1) return n;
console.log("bla 2 относится к " + n);
res=sumTo(n-1) + sumTo(n-1);
далее
console.log("bla 1 относится к " + n);
  if (n == 1) return n; (ДВА РАЗА)
затем одна из рекурсий завершает свое выполнение и
получается вторая единица
console.log("bla 1 относится к " + n);
  if (n == 1) return n; (ДВА РАЗА)
затем рекурсия прекращает свою работу НО!
когда щелкаю на next function call он еще "перескакивает" на строчку 
res=sumTo(n-1) + sumTo(n-1);
и только потом доходит до bla 3.
это завершает свое выполнение основной вызов первый, но почему он переходит на эту строчку ( 
res=sumTo(n-1) + sumTo(n-1);
 ) ничего не делая? ведь он должен был ее "пройти" когда инициализировал вызов рекурсий.
5. Я правильно понимаю, что даже если бы функция на была вызвана в теле документа (document.write( sumTo(2) )

, она все равно бы посчиталась (использовала бы память)?