script 元素
使用 script 元素的方法有两种:直接在页面中嵌入和包含外部文件。
type 属性:表示编写代码使用的脚本语言的内容类型(也称 MIME 类型)。考虑到约定俗成和最大限度的兼容性,目前 type 属性的值依旧还是 text/javascript,这个属性不是必需的,没有指定这个属性时,则其默认值是 text/javascript。
使用嵌入 js 代码时,只须为 script 元素指定 type 属性。包含在 script 元素中的 js 代码从上到下依次解释,在解释器对 script 元素中的 js 代码求值完毕之前,页面中的其他内容都不会被浏览器加载或显示。
src 属性:包含要执行代码的外部文件。带有 src 属性的 script 元素不应该在其标签之间包含额外的 js 代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。
通过 src,还可以包含来自外部域的 js 文件。
无论如何包含代码,只要不存在 defer 和 async 属性,浏览器都会按照 script 元素在页面中出现的先后顺序来对它们依次进行解析。
标签的位置:现代 Web 应用程序一般都把全部 js 引用放在 body 元素中页面内容的后面。
延迟脚本:defer 属性,只适用于外部脚本文件。表明脚本会被延迟到整个页面都解析完毕后在执行。延迟脚本并不一定会按照顺序执行,也不一定会在 DOMContentLoaded 事件触发前执行,因此最好只包含一个延迟脚本。
异步脚本:async 属性,只适用于外部脚本文件。不让页面等待脚本的下载和执行,从而异步加载页面其他内容。异步脚本一定会在页面的 load 事件前执行,但可能会在 DOMContentLoaded 事件触发之前或之后执行。
文档模式
通过文档类型切换实现。
- 混杂模式:让 IE 的行为与 (包含非标准特性的)IE5 相同。
- 标准模式:让 IE 的行为更接近标准行为。
- 准标准模式:浏览器特性有很多都是符合标准的。
在文档的开始位置没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。
对于标准模式,H5 这样开启:
<!doctype html>
noscript 元素
noscript 元素中的内容只会在下列情况下显示出来:
- 浏览器不支持脚本。
- 浏览器支持脚本,但脚本被禁用。