Inline script <script> const prop = 123; console.log(prop); </script> Classic, order: load [1, 2, 3], execute [1, 2, 3] <script src="script-1.js"></script> <script src="script-2.js"></script> <script src="script-3.js"></script> Async, order: load any [2, 3, 1], execute any [2, 3, 1] <script src="script-1.js" async></script> <script src="script-2.js" async></script> <script src="script-3.js" async></script> Defer, order: load any [2, 3, 1], execute [1, 2, 3] <script src="script-1.js" defer></script> <script src="script-2.js" defer></script> <script src="script-3.js" defer></script> Module, order: load any [2, 3, 1], execute [1, 2, 3] <script type="module" src="script-1.js"></script> <script type="module" src="script-2.js"></script> <script type="module" src="script-3.js"></script>