第二章 在HTML中使用JavaScript
要想把JavaScript放到网页中,就必须涉及到Web的核心语言HTML。向HTML页面中插入JavaScript的主要方法,就是使用<script>元素。下面我来归纳一下<script>标签比较重要的属性。
async属性(定义为异步脚本的属性):浏览器执行到这里时,在下载js脚本的同时会继续往下解析页面,比如下载其他资源资源,解析html或等待其他待加载的脚本等(异步执行js脚本)。当js脚本下载完了,才会暂停页面解析,立即执行js脚本;
defer属性(定义为延迟脚本的属性):浏览器执行到这里时,在下载js脚本的同时会继续往下解析页面,比如下载其他资源资源,解析html或等待其他待加载的脚本等(异步执行js脚本)。当文档完全被解析和显示后再执行!
注意:
①在现实中,如果存在多个异步脚本(延迟脚本),async(defer)属性并不能保证脚本间按先后顺序执行;在我们的页面中,最好不要出现多个异步脚本(延迟脚本);
②用<script&></script>嵌入JavaScript代码时,JavaScript代码中任何地方出现</script>字符串时都要转意,否则解析器会默认结束JavaScript代码的解析。特殊字符串转义,如下图:
字面量 | 含义 |
\' | 单引号('),在用单引号表示的字符串中使用。例如:'He said, \'hey\' !' |
\" | 单引号("),在用双引号表示的字符串中使用。例如:"He said, \"hey\" !" |
\& | 和好 |
\\ | 反斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
\xnn | 以十六进制代码nn表示一个字符(其中n为0-F)。例如,\x41表示"A" |
\unnn | 以十六进制代码nnn表示的一个Unicode(其中n为0-F)。例如,\u3a3表示希腊字符Σ |
③HTML页面正常情况下是按顺序进行的,一行一行的执行,执行到<script>标签时就会停止继续向下执行,下载JavaScript代码或直接执行JavaScript代码。这样就会让页面显示渲染一部分卡一下执行JavaScript再渲染,给用户的体验很差!所以建议JavaScript代码尽量放在HTML页面最下方(JavaScript代码实在是不能放在最下面时可以使用window的onload事件等)