-
使用
<script>的方式有两种:通过它直接在网页中嵌入 JavaScript 代码,以及通过它在网页中包含外部 JavaScript 文件。 -
在使用行内 JavaScript 代码时,要注意代码中不能出现字符串
</script>,想避免这个问题,只需要转义字符"\"即可:<\/script>。 -
使用了
src属性的<script>元素不应该再在<script>和</script>标签中再包含其他 JavaScript 代码。如果两者都提供的话,则浏览器只会下载并执行脚本文件,从而忽略行内代码。 -
src属性指定的路径发送的GET请求不受浏览器同源策略限制,<script>标签的integrity属性是防范这种问题的一个武器,但这个属性也不是所有浏览器都支持。 -
浏览器都会按照
<script>在页面中出现的顺序依次解释它们,前提是它们没有使用defer和async属性。 -
defer属性表示脚本在执行的时候不会改变页面的结构。也就是说,脚本会被延迟到整个页面都解析完毕后再运行,即告诉浏览器立即下载,但延迟执行,但会在DOMContentLoaded事件之前执行。defer属性只对外部脚本文件才有效。 -
与
defer不同的是,标记为async的脚本并不保证能按照它们出现的次序执行,不必等到该异步脚本下载和执行后再加载其他脚本。也就是说,不需要等待其他脚本,同时也不阻塞文档渲染,即异步加载。正因为如此,异步脚本不应该在加载期间修改 DOM 。异步脚本保证会在页面的 load 事件前执行。 -
现代 Web 应用程序通常将所有 JavaScript 引用放在
<body>元素中的页面内容后面,页面会在处理 JavaScript 代码之前完全渲染页面,使用户感觉页面加载更快。 -
最佳实践是尽可能将 JavaScript 代码放在外部文件中,原因如下:
- 可维护性
- 缓存
- 适应未来
-
通过使用
<noscript>元素,可以指定在浏览器不支持脚本时显示的内容。如果浏览器支持并启 用脚本,则<noscript>元素中的任何内容都不会被渲染。