Мне не удалось найти четкий ответ, поэтому я попробую его здесь.
РЕДАКТИРОВАТЬ: этот вопрос не о том, будет ли доступна вар с начала области действия, в которой она находитсяСкорее, я хотел бы знать, объявляется ли var, когда объявляются глобальные переменные, или когда вызывается функция.
Рассмотрим этот пример:
var a = "foo";
function xyz(){
var b = "bar";
}
xyz();
при запуске этогокод, куда будет поднята переменная b?
это будет:
declare function xyz
declare var a
assign value "foo" to var a
execute xyz()
>> declare var b
assign value "bar" to var b
или будет:
declare function xyz
declare var a
>> declare var b
assign value "foo" to var a
execute xyz()
assign value "bar" to var b
Я знаю, что переменная bне доступен из глобальной области, но мне любопытно, в каком порядке здесь происходят вещи.
Заранее спасибо