1. 嵌入式JavaScript
在解释器对<script>元素内部的所有代码求值完毕以前,页面中的其余内容都不会被浏览器加载或显示
2. 外部JavaScript
与上面一样,在解析外部JavaScript文件(包括下载该文件)时,页面的处理也会暂时停止。使用外部文件更好,优点:可维护性、可缓存。
3. 所有<script>元素都会按照它们在页面中出现的先后顺序依次被解析。在不使用 defer 和 async 属性的情况下,只有在解析完前面<script>元素中的代码之后,才会开始解析后面的<script>元素中的代码。
4. 使用 defer 属性可以让脚本在文档完全呈现之后在执行。延迟脚本总是按照指定它们的顺序执行。只对外部文件有效。
5. 使用 async 属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。也不能保证异步脚本按照它们在页面中出现的顺序执行。只对外部文件有效。