Код, подходящий прост:
console.log("So it begins.");
foo();
function foo() { console.log("In foo()."); }
console.log("So it ends.");
Почему foo ()
выполняется, прежде чем он будет определен (ретроспективное редактирование: в Chrome and Safari)?
Я немного чинил с этим, тестируя следующий код в Chrome, Safari и Firefox:
javascript:foo();function foo() { alert("Oh."); }
оповещение отображается в Chrome и Safari, в то время как Firefox остается молчать.
Есть ли пояснение Для этого удивительного, непоследовательного поведения?