script元素
type属性值是text/javascript(不指定的话,默认值也是text/javascript)
引入javascript的方式主要有两种:
一、script元素内部引用
在script元素内部引用时,js代码不能出现</script>
字符串(会被当成结束的标签),可使用转义字符”\”解决这一问题。
二、script元素引用外部文件
为script元素设置src属性。
二、script元素的位置
(1)head
javascript代码会被下载、解析和执行完成之后再加载页面内容。
因为当浏览器遇到默认的 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档。
延迟执行的方法:
在js代码内部:
①window.onload=function(){};
在页面内所有元素包括图片全部加载完毕后再执行;
不可编写多个,多个的话后面定义的会覆盖(函数不能重载)
②$(document).ready(function(){});(jQuery)
不必等所有元素加载完毕,DOM结构绘制完毕后执行;
可编写多个,都可以执行;
可以简化为$(function(){});
引用外部javascript文件:
③设置元素的defer/async属性
a.defer模式
<script type="text/javascript" src="x.min.js" defer="defer">
</script>
当浏览器遇到 script 标签时,文档的解析不会停止,其他线程将下载脚本,待到文档解析完成,脚本才会执行。
标记为defer的脚本会按照指定它们的先后顺序执行。
b. async模式
<script type="text/javascript" src="x.min.js" async="async"></script>
当浏览器遇到 script 标签时,文档的解析不会停止,其他线程将下载脚本,脚本下载完成后开始执行脚本,脚本执行的过程中文档将停止解析,直到脚本执行完毕。
标记为async的脚本不保证按照指定它们的先后顺序执行。
(2)<body>
标签的尾部
会先呈现页面内容再解析脚本。