HTML中如何使用JavaScript
虽然,JavaScript的使用场景越发多样化,可以在不同的环境上运行,但大家较为熟悉的还是在HTML的交互,所以我们稍稍说一下,如何在HTML使用JavaScript。
JavaScript是通过<script>元素实现的,有以下两种方式
- 在页面直接嵌入代码
<script type="text/javascript"> function sayHello(){ console.log('hello'); } </script> - 引入外部JavaScript文件
<!-- HTML4 and (x)HTML --> <script type="text/javascript" src="javascript.js"></script> <!-- HTML5 --> <script src="javascript.js"></script>
说一下script 元素
The HTML <script> element is used to embed or reference an executable script.
HTML script 元素 是用来嵌入或引用一个可执行脚本
看一下它的常用属性
- async :HTML5属性,该布尔值用来要求浏览器在是否允许的情况下异步执行脚本。必须配合src属性,如果src缺失,该值无效;动态插入的脚本默认会在它加载完成后异步执行。
- defer:必须配合src属性,如果src缺失,该值无效;该布尔值被设定用来告知浏览器将在dom解析完成之后,
DOMContentLoaded事件之前,执行脚本; - src:用来引用外部脚本的URI
- type: 定义src引用的脚本语言,支持的MIME类型包括
text/javascript,text/ecmascript,application/javascript, 和application/ecmascript。如果没有定义这个属性,脚本会被视作JavaScript。
async和defer区别联系
此处参考defer和async的区别的解答,区别如下:
-
defer与async在网络读取的方式是一样的,都是通过异步读取的,不会阻塞html的解析; -
defer是在整个页面都解析完毕之后执行的,HTML5要求脚本按照他们出现的方式顺序执行,以下defer1.js应该先于defer2.js执行。(注意:这个顺序只是理论上的,所以最好不要用这个当做脚本之间的依赖执行)<script src = 'defer1.js' defer></script>
<script src = 'defer2.js' defer></script> -
async是在脚本异步下载后直接执行的,所以没有顺序可言。
文档模式
IE5.5 提出了文档模式的概念,使用 doctype 切换实现;
分类
- 混杂模式:会让ie的行为与ie5相同
- 标准模式:会让ie行为更接近标准行为
noscript
在浏览器不支持脚本和脚本被禁用时,会显示noscript标签内容