Normally, you would just include script tags directly in the HTML document. Unless you use the async attribute, subsequent scripts will won't load until the previous ones so you can safely rely on any dependencies to be available.
You could use the HTMLScriptElement interface programmatically to load scripts, if you wanted to keep your HTML cleaner. However, then you'd have to manually create onload and onerror handlers to asynchronously wait for the script(s) to load. This would get messy and complicated unless you build an abstraction around it. And then you're doing something done many times before, see RequireJS, SystemJS et al.
So, wanting to keep your HTML clean of script tags is a reasonable ambition, but you're probably best off looking into an off-the-shelf script loader to do that rather than rolling your own.