the following lines are from the official jQuery website
Lets talk about the more traditional way of handling without using attribute defer
or async
The browsers will:
Download script
s, blocking other resource from downloading
Parse the scripts
Execute the scripts
See Ch1, Loading and Executing from High Performance JavaScript
Here's another good reference 12.3. Execution of JavaScript Programs from JavaScript: The Definitive Guide, 4th Edition
Yes it will wait with parsing any html until the script is loaded and parsed. This is one reason why you should load externa scripts at the end of your page so script will not blocking the html rendering.
The scripts are executed in the order they are in the document. The browser waits for the script to load before executing the scripts following it.
If this weren't the case, you couldn't have any two files be dependent of each other. You'd have to put everything in the same file because otherwise the script execution order would be practically random.