Странный skope у функции 
		
		
		
		Доброго времени суток. На собеседовании задали вопрос: 
	
var name = "Jonh";
function sayHi(){ alert(name); }
setTimeout(function(){
  var name = "Mike";
  sayHi();
}, 1000);
Что выведет console.log() - Jonh, или Mike? Ошибся сказав что Mike. Выводит Jonh. Тотально не понимаю поведения этого кода. Обьясните пожалуйста в чем дело. Желательно в деталях.:blink:  | 
	
		
 7ver2009, 
	Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.  | 
	
		
 7ver2009, 
	вы создали две переменные, функция sayHi "видит" только первую переменную. если нужно вывести Mike, уберите создание второй переменной, подумайте что лишнее?  | 
	
		
 Спасибо, вроде разобрался. 
	 | 
	
		
 7ver2009, 
	
var name = "Jonh";
 function sayHi(){ alert(name); }
 setTimeout(function(){
 name = "Mike";
 sayHi();
 }, 1000);
 | 
| Часовой пояс GMT +3, время: 03:57. |