Это немного больше, чем сказал Алекс (хотя он только что сослался на мою статью - спасибо!).
Если бы кодовая последовательность была в той последовательности, которая появляется, "var myVar" не была бы поднята(или, скорее, его подъем не будет иметь никакого эффекта), потому что сначала определяется "window.myvar = 150" (более того, это не объясняет, почему первый пример работал, а второй только в IE не удался)
Это выглядиткак второй скрипт (как-то) загружается до первого - но только в IE8.Вы можете смоделировать переключение последовательности тегов, и вы увидите неопределенное предупреждение во всех браузерах
var myvar;
if (false) {
myvar = 3;
}
alert(myvar)
window.myvar = 150;