在HTML页面中加入JavaScript最主要的方法就是使用<script>:包含外部的JavaScript文件和在页面中直接嵌入JavaScript代码。
<script>的属性
<script>包含属性:async 表示应该立即下载外部脚本,defer表示脚本可以延迟外部js到DOM文档完全被解析和显示后再执行,src引入外部文件,type表示脚本的内容类型(MIME类型)text/javaScript;
<script>书写格式
<script>和</script>中出现</script>字符串时,要用“\”转义字符来转义“<\/script>”
<script src="###"></script>这种格式在html中,而<script src="###"/>则不行,不能被浏览器正确解释。而在XHTML中可以使用<script src="###"/>
<script src="###"></script>这种带src的标签,中间是不能再添加JavaScript代码的。
(src是指的文件的来源,例如:img 标签中也有src;是拿取的意思,可以是和页面同一服务器,也可以不是在同一个服务器(即是,不同域的JavaScript文件))(href则是连接文件的地址,是连接的意思)
无论如何包含代码,只要不出现defer和async属性,浏览器就会按照<script>元素再页面中出现的先后顺序对他们进行依次解析。
<script>标签位置
1,传统的将<script>放在<head>标签中,这意味着JavaScript标签都会被下载,解析和执行完成后,才开始呈现DOM文档节点的内容(<body>标签中节点元素)
因此现在为了避免这种现象,通常是把JavaScript引用放在<body>元素中,页面元素的最后面
2 ,defer属性(延迟脚本)(只适于外部js)
相对于脚本会延迟到整个页面都解析完毕后再运行,告诉浏览器立即下载,但延迟到</html>元素加载完后执行。
HTML5提倡 延迟脚本也会按顺序执行,而脚本会优先于DOMContentloaded事件,但是事实却先后顺序都不一定。因此还是放在<body>中的最后最好
3,async属性 (异步脚本) (只适于外部js)
async的脚本并不保证他们的执行顺序,目的是不让页面等待外部js脚本的下载和执行,从而异步加载页面其他内容。
异步脚本一定会在load事件前执行,和DOMContentLoaded事件的执行顺序不一定。
嵌入代码和外部JavaScript
支持,鼓励使用外部JavaScript文件(维护性好;可缓存:两个页面都需要同一个js,则缓存一次)
<noscript>
用于不支持JavaScript的浏览器中显示内容