AzriMan,
ссылка, которую вы дали дублирует первый пункт указанный мною, и процитированный вами
kefi,
сейчас попытаюсь сформулировать все одной фразой.скорее всего это только запутает вас.
скрипты загружаются и выполняются последовательно, по очереди.
можете представить себе очередь,в которую попадают скрипты, и выходят после своего выполнения.
при добавлении новых элементов script они также попадают в конец этой очереди на равных правах.
у всех скриптов одна глобальная область видимости переменных и функций.вообще, грубо говоря функции по сути ничем не отличаюстя от прочих пременных-объектов.все глобальные функции и объекты являются свойствами объекта window.и их можно преопределять(кроме встроенных.с ними чуть сложнеее) абсолютно спокойно.то есть если вы переопределили функцию, то дальше будет выполнятся именно новый код.и переменные также будут в дальнейшем иметь новое значение
по поводу же локальных контекстов я уже давал ссылку выше.
по поводу асинхронного кода, вам также давалась ссылка выше.но в общем-тол тут также сохраняется очередь.JS-однопоточный язык с псевдомногопоточностью
|