1 . < script > 元素
把 JavaScript 插入到 HTML 中的主要方法是使用 < script > 元素!!
-
包含在< script > 里的代码会被从上到下进行解释。在< script > 元素中的代码被计算完成之前 ,页面的其余内容不会被加载,也不会被显示
-
如果想要引入外部 js 文件,就可以用到 < script > 元素 内的
src属性!!!- 但要注意,如果引入了外部文件,< script > 元素内部就不要再写代码了,不会被执行!!
2 . < script > 标签的位置
注意:
页面是在浏览器解析到 的起始标签时才开始渲染!!
所以:
如果我们把< script > 标签放在 < head > 里,那么对于需要很多 js 代码的页面,就会导致页面渲染有明显延迟!!!(浏览器遇见< script > ,只有把里面的代码解释完毕后,才会接着继续渲染)而在此期间,浏览器的窗口完全空白!!!
3 . < script > 标签的 defer属性--推迟执行脚本
< script defer = "defer">
-
该属性表示脚本在执行的时候不会改变页面结构
-
脚本会延迟到整个页面都解析完毕后再执行
-
相当于告诉浏览器,立马下载,但延迟执行
-
只对外部文件有效
4 . < script > 标签的 async属性--异步执行脚本
- 告诉浏览器,不必等脚本下载和执行完毕后再加载页面。假设有两个外部文件,同时也不必等到该异步文件下载和执行后再加载另一个文件!!!
5 . 动态加载脚本
let script = document.createElement('script');
script.src = "../xx.js"
DOM节点.appendChild(script)
默认是异步的,但不是所有浏览器都支持 `async` ,所以可以将其明确设置为同步加载!!!!
script.async = false
6 . < noscript > 元素
- 浏览器不支持脚本
- 浏览器对脚本的支持关闭
满足以上任何一种情况 ,包含在 < noscript > 标签里的内容才会被渲染,否则不会被渲染!!!