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