问题一:javascript的引用方式有几种?
有两种,分别是嵌入式和外部引入式,对于外部引入式,它引入的位置在哪里呢,一般而言是在body标签的底部,因为如果在head标签中引入script的外部文件,当script比较大的时候,整个页面就会有一段时间式空白的,如果这样的话,对用户体验就不好,这是因为浏览器在解析html'文档的时候式从上往下一次解析的;
为啥要用外部引入式呢?
原因有三:第一,外部引入式可维护性强,把所有的js文件放到一个文件夹中,开发的时候就可以专心修改维护js代码了,可以不受HTML文档的影响,效率还高;第二,可以缓存,浏览器能够缓存外部的文件,比如说要是有多个文件引用同一个代码片段,如果放在html中那么这个代码片段得写多次,增加了浏览器的压力,但是放在外面的时候就可以做到复用。
问题二:是不是在引入script标签的时候一定是双标签么?
一般情况而言是的,不过也不一定,但是为了保险期间(针对ie浏览器)还是双标签比较好;
拓展知识:
<script type="text/javascript" charset="utf-8" async defer>
function sayHi(){
alert("<\/script>")
}
sayHi()
</script>
使用 defer 属性可以让脚本在文档(DOM树绘制完毕)完全呈现之后再执行。defer(延迟脚本)总是按照指定它们的顺序执行(外部文件有效),说的是脚本和html文档之间的关系。
使用 async 属性表示立即下载该脚本(带有该属性的脚本script标签就起作用),不必等待其他脚本,也不必阻塞文档呈现。不能保证异步脚
本按照它们在html页面中出现的顺序执行(只对外部脚本有效),说的是多个脚本的时候执行的顺序。
<noscript>元素,
该元素在浏览器不支持脚本jsvascript的时候,才会显示出来(来提示用户),如果支持,就永远不会显示,既然是一个元素,那么他内部可以嵌套除了body之外的所有的html元素。
js是一个松散类型的语言,主要表现在一个变量可以保存任何类型的值,而且还可以更改,也就是说,这里的变量只是一个保存了值的占位符;