这几个词对于初学者来说,是比较容易混淆的。要想明白个中缘由,就需要从浏览器中的脚本编程的发展历史来看。起先,为了减少客户端和服务端之间的带宽流量,增强浏览器在本地的功能,提升用户使用体验,各大浏览器厂商开始在浏览器中内置可编程的脚本语言,供开发者使用。网景公司的产品叫JavaScript,微软的叫JScript,这两样是比较出名的。
ECMA(欧洲计算机制造商协会)为了推动浏览器内置脚本编程的标准化工作,协同各个浏览器厂商的程序人员制定了ECMA-262标准,又叫ECMAScript。一个完整的浏览器内置脚本编程语言包括三个部分的实现:ECMAScript标准实现,DOM实现和BOM实现。
随着时间的推移,人们习惯用JavaScript来泛指浏览器内置脚本语言。
<script type="text/javascript"></script>
如上所示,我们可以在<script>标签对中书写JavaScript代码。大多数的现代浏览器已经不需要加上type类型。但是,显然加上这个是更标准的一种写法了。
JavaScript是脚本语言,使用这门语言编写的代码是由浏览器解释执行的。这门语言诞生的目的,就是为了实现网页在浏览器本地与用户之间的交互。
外链文件。JS代码写在单独的js文件中,使用script标签的src属性引入。要注意js文件引入的前后顺序。
<script type="text/javascript" src="1.js" ></script><script type="text/javascript" src="2.js" ></script>
如果在2.js文件中使用了1.js中定义的方法,就必须先引用1.js文件。
内嵌JS代码。JS代码写在html文档的<script></script>标签对中
1 <!DOCTYPE html> 2 <html> 3 <script type="text/javascript"> 4 alert(3); 5 </script> 6 <head> 7 <meta charset="utf-8" /> 8 <title></title> 9 <script type="text/javascript">10 alert(0);11 </script>12 </head>13 <script type="text/javascript">14 alert(1);15 </script>16 <body>17 <script type="text/javascript">18 alert(2);19 </script>20 </body>21 </html>22 <script type="text/javascript">23 alert(4);24 </script>
代码执行后,从上到下alert依次显示3=》0=》1=》2=》4。js代码只要不是写在function中,浏览器加载html文档的时候按先后顺序就会去执行js代码。芬
推荐放在head或者body标签中;对于同一个html文档中,不同<script></script>标签对中的代码等价于写在同一个标签对中。
作为元素的事件属性值,或超链接标签的href属性中
<input id="btn" type="button" onclick="alert(new Date());" /> <a href="javascript:alert(new Date());">javascript</a>
这两种写法都不推荐这么用了。
src 方式,是将文件内的代码明确作为程序部分装入,在读取时,是另外启动请求读取的。
#indeclude 是在服务端将 这个js文件当作HTML 的方式 直接合并起来发往客户端。
在开发上的区别,就是 include近来的内容,很可能当作HTML 文本处理了,而不是程序内容。
当然这可以变通,比如在 include 外面包上 script节点,如:
<script type="text/javascript"><!--#Include File="re.js"--></script>
记不清楚从哪里看到了,head中引入js文件,如果未能正常加载到js文件(比如网络延迟比较大,引用的资源不存在了等),会影响到浏览器的渲染引擎对页面的显示(dom树的渲染)。至于这个,也不是很明白?希望那位大侠予以指正。另外,有渲染引擎和JS引擎这样的说法吗?
2015-01-1421:24:35:要想弄明白这个,就得明白JavaScript的阻塞特性。(浏览器在执行JS代码的时候,会停止页面的渲染和其它资源的下载。具体参考:http://www.ibm.com/developerworks/cn/web/1308_caiys_jsload/,这文章对于JavaScript的加载和执行,讲得非常透彻了。)
新闻热点
疑难解答