学习了JavaScript基础语法,感觉掌握还不够,所以正在看:JavaScript高级程序设计。链接地址:JavaScript高级程序设计.
本书很基础,又有高级特性部分,深入浅出,值得一看
历史就不记了,一大堆
JavaScript事一种专为与网页交互而设计的脚本语言,由以下三个不停地部分组成:
1.ECMAScript,由ECMA-262定义,提供核心语言功能;
2.文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
3.浏览器对象模型(BOM),提供与浏览器交互的方法和接口;
JavaScript的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari和Opera)中都得到了不同程度的支持。
其中,所有浏览器对ECMAScript第三版的支持大体上都还不错,而对ECMAScript5的支持程度越来越高,但对DOM的支持则彼此相差比较多,对HTML5已经正式纳入标准的BOM来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。
<script>
有若干属性,经常看到type="text/javascript"
,type表示编写代码使用的脚本语言的内容类型,也成为MIME类型,这个值不是必须的,因为默认就是type="text/javascript"
。还有其他属性,有需要了解的后面会介绍。
使用<script>
元素的方式有两种:直接在界面中嵌入javascript代码和包含外部JavaScript文件。在使用<script>
元素嵌入JavaScript代码时,只需为<script>
指定type属性。在使用<script>
嵌JavaScript代码时,记住不要再代码中的任何地方出现</script>
字符串,记住,任何,alert(“</script>
“)都不行,可以把字符串拆开。
通过src属性指向外部JavaScript文件,甚至可以指向网络上的。当然网上的不能随便引,有安全问题。这种最好写成<script type="" src=""></script>
,不要写成<script type="" src=""/>
,此种写法可以在XHTML中写,不能在HTML中写。因为它不符合html规范而且不能得到某些浏览器的正确解析如IE,带有src属性的<script>
中不要包含额外的JavaScript代码,如果包含,只执行src外部js。
延迟脚本:HTML4.01为<script>
标签定义了defer属性,这个属性的用途是表明脚本在执行是不会影响界面的构造。也就是说脚本会被延迟到整个界面都解析完毕后再运行。因此,在<script>
元素中设置defer属性,想打欧告诉浏览器立即下载,但延迟执行.<script type="" src="" defer="defer"></script>
不幸的是defer属性只适用于外部脚本
<script>
标签的位置:按照惯例,所有的<script>
元素都应该放在界面的<head>
元素中,这种做法的目的就是把所有外部文件(包括css文件和JavaScript文件)的引用都放到相同的地方。可是,在稳当的<head>
元素中包含所有的javascript文件,以为这必须等到全部javascript代码都被下载,解析和执行完成之后,才能开始呈现界面的内容,(浏览器在遇到<body>
标签时才开始呈现内容)。对于那些需要很多JavaScript代码的界面来说,这无疑会导致浏览器在城西那界面是出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白,为了避免这个问题,现在web应用程序一般都吧全部javascript引用放在<body>
语速中界面的内容后面,也就是</body>
之前。
<noscript>
元素在未能成功加载或不支持JavaScript时使用,但是现在所有浏览器都支持JavaScript了
<noscript><p>本界面未能成功加载或不支持JavaScript</p></noscript>
,放<body>
里边