Short: Yes:
Without specifying defer or async properties within the script tag, the spec says, that a browser has to sequentially (sync) load those files.
In other words, a plain script tag which a browser finds needs to get
- loaded
- executed
- (block any other render/execution process while doing the above)
While a "modern" browser probably still trys to optimize that process, those steps need to be applied (at least, process-like). That is the reason why you should place script tags without further specification always at the bottom of your <body> tag. Even the DOM render process stops while loading/executing scripts.
To avoid that, you can specify a defer or async (HTML5 only) property in those script tags, like
<script defer src="/foo/bar.js"></script>
that tells the browser it is a script that meant to be executed after the document has been parsed.
See https://developer.mozilla.org/En/HTML/Element/Script
setTimeout(function(){ alert("Hello"); }, 0);, that alert would appear after the other scripts have been loaded. In fact, after the whole HTML has been loaded.