`

第一章 JavaScript简介(二)

    博客分类:
  • js
阅读更多
前言
DOM标准定义的API
传统客户端JavaScript遗留下来的API
以上两者有很大不同.
引申出的概念
1. DOM是一个标准
2. 传统客户端的JavaScript

JavaScript是一种轻型的,解释型的程序设计语言,而且具有面向对象的能力.该语言的通用核心已经嵌入到Netscape,IE和其他WEB浏览器中,而且它能用表示WEB浏览器窗口及其内容的对象使WEB程序设计增色不少.
JavaScript的客户端版本把可执行的内容添加到了网页中,这样一来,网页就不再是静态的HTML了,而是包含与用户进行交互的程序,控制浏览器的程序以及动态创建HTML内容的程序.

JavaScript是一种无类型的语言,就是说,它的变量不必具有一个明确的类型,JavaScript多处灵感都来源于Perl语言,例如正则表达式和以数组处理的特性.

对JavaScript的误解
JavaScript和Java是完全不相干的,相似的名称纯粹是一种行销策略罢了(该语言最初被称为LiveScript)

JavaScript并不简单
JavaScript是作为一种脚本语言而不是作为一种程序设计语言来推广的,其中的差别在于脚本语言比较简单,它们是给非程序员提供的程序设计语言,实际上,JavaScript最初出现的时候相当简单,其复杂度与Basic相同,它确实有许多特性可以使它更加灵活,让程序设计新手更加容易使用,非程序设计者可以使用JavaScript来执行有限的,按部就班的程序设计任务.
但是,在简单的外表之下,JavaScript却是一种具有丰富特性的程序设计语言,它和其他所有语言一样复杂,甚至还要复杂.

JavaScript的版本



JavaScript JScript
版本 说明 版本 说明
JavaScript1.0 该语言的原始版本,日前基本上已经废弃,由Netscape2实现 Jscript1.0 基本上相当于JavaScript1.0,由IE3的早期版本实现
JavaScript1.1 引入了真正的Array对象,消除了大量重要的错误,由Netscape3实现 Jscript2.0 基本上相当于JavaScript1.1,由IE的后期版本实现
JavaScript1.2 引入了switch语名,正则表达式和大量其他特性,基本上符合ECMA v1,但是还有一些不兼容性,由Netscape4实现
JavaScript1.3 修正了JavaScript1.2的不兼容性,符合ECMA v1,由Netscape4.5实现. Jscript3.0 相当于JavaScript1.3,符合ECMA v1,由IE4实现.
JavaScript1.4 只在Netscape的服务器产品中实现 Jscript4.0 还没有任何WEB浏览器能实现它
Jscript5.0 支持异常处理,部分符合ECMA v3,由IE5实现.
JavaScript1.5 引入了异常处理,符合ECMA v3,由Mozilla和Netscape 6实现 Jscript5.5 基本上相当于JavaScript1.5,完全符合ECMA v3,由IE5.5和IE6(IE6实际实现的是Jscript5.6,但是Jscript5.6和客户端JavaScript程序设计者相关的部分与5.5没有区别)
ECMA
ECMA  v1 该语言的第一个标准版本,标准化了JavaScript1.1的基本特性,并添加了一些新特性,没有标准化switch语句和正则表达式,与JavaScript1.3和Jscript3.0的实现一致.
ECMA  v2 该标准的维护版本,添加了说明,但没有定义任何新特性.
ECMA  v3 标准化了switch语句,正则表达式,异常处理,民JavaScript1.5和Jscript5.5的实现一致.


客户端JavaScript
把一个JavaScript解释器嵌入到WEB浏览器时,就形成了客户端JavaScript,当人们提到JavaScript时,通常所指的是客户端JavaScript, 客户端JavaScript及JavaScript语言的核心,这两者是混合在一起的.

客户端JavaScript将JavaScript解释器的脚本化能力与Web浏览器定义的文档对象模型(Document Object Model ,DOM)结合在一起,因为这两种技术是以一种相互作用的方式结合在一起的,所以产生的结果大于两部分能力之和,即客户端JavaScript使得可执行的内容散布在网络中的各个地方,它是新一代动态DHTML文档的核心.

与ECMA-262规范定义了JavaScript语言核心的标准版本一样,W3C也发布了一个DOM规范,用来将浏览器必须在它的DOM中支持的特性进行标准化.尽管W3C DOM标准还没有得到应有的支持,但是对它的支持仍然足以使WEB开发者开始编写基于它的JavaScript代码.





各种浏览器支持的客户端JavaScript特性
Netscape IE
浏览器版本 语言版本 DOM功能 浏览器版本 语言版本 DOM功能
Netscape2 JavaScript1.0 表单操作 IE3 Jscript1.0/2.0 表单操作
Netscape3 JavaScript1.1 图像翻转 IE4 Jscript3.0 图像翻转,具有document.all 性质的DHTML
Netscape4 JavaScript1.2 具有层的DHTML IE5 Jscript5.0 具有document.all 性质的DHTML
Netscape4.5 JavaScript1.3 具有层的DHTML IE5.5 Jscript5.5 部分支持W3C DOM标准
Netscape6/Mozilla JavaScript1.5 对W3C DOM标准的大量支持,废止了对层的支持 IE6 Jscript5.5 部分支持W3C DOM标准,缺乏对W3C DOM标准的事件模型的支持

Netscape公司和Microsoft公司都提供了客户端JavaScript,这两种版本的不同之处与不兼容性比两家公司相应的语言核心之间的差别要大得多,不过,两种浏览器都支持的客户端JavaScript的特性子集还是比较大的,由于没有较好的名字,所以引用客户端JavaScript版本时,使用的都是它们引以为基础的语言核心版本.因此,在许多环境中,术语JavaScript1.2指的就是Netscape4和IE4支持的客户端JavaScript,当使用核心语言的版本号来引用客户端的JavaScript版本时,指的是Netscape和IE都支持的特性集合.当讨论一种浏览器特有的客户端特性时,使用浏览器的名称和版本号来引用它.

注意客户端JavaScript的浏览器不是只有Netscape和IE,例如,Opera也支持客户端的JavaScript,但是由于Netscape和IE占据了大部分的市场份额,所以本书只对它们进行讨论.其他浏览器实现的客户端JavaScript应该遵循这两种浏览器的实现.

同样的,能够嵌入WEB浏览器的程序设计语言也不是仅有JavaScript这一种,例如,IE就支持VBScript,它也提供了许多与JavaScript相同的特性,但是却只能在IE中使用.

其他环境中的JavaScript
JavaScript是一种常规用途的程序设计语言,它的使用并不仅仅限于WEB浏览器,它能够嵌入任何应用程序,为程序提供脚本功能,事实上,从一开始,Netscape公司的WEB服务器就含有JavaScript解释器,以便能够用JavaScript编写服务器端的脚本,同样的,Microsoft公司除了在IE中使用了Jscript解释器外,还在它的IIS WEB服务器和Windows Scripting Host产品中使用了该解释器.

Netscape公司和Microsoft公司都向那些想把JavaScript解释器嵌入自己应用程序的公司和程序设计者开放了它们的JavaScript解释器,Netscape公司的解释器是作为开放资源发布的,目前通过Mozilla组织可以得到它,Mozilla组织实现上提供了两种不同版本的JavaScript1.5解释器,一个版本是用C语言编写的,称为SpiderMonkey,另一个版本是用Java编写的,本书称为Rhino.

客户端的JavaScript: 网页中的可执行内容.
当一个WEB浏览器嵌入了JavaScript解释器时,它就允许可执行的内容以JavaScript脚本的形式分布到Internet中,
JavaScript不仅能够控制HTML文档的内容,而且能够控制这些文档的行为,也就是说,当你在输入域输入了一个值或者点击了文档中的一幅图像时,JavaScript程序就会以某种方式对此做出响应,它是通过给文档定义”事件处理器”实现这一点的.所谓的事件处理器,就是在特定的事件发生时要执行的JavaScript代码段.

Onclick原本是Netscape公司对HTML的一个扩展,是专门为客户端JavaScript而添加的.但是,现在HTML的4.0版本已经将这一性质和其他事件处理器性质标准化了.

JavaScript在客户端真正强大之处在于脚本能够访问基于网页内容的对象层次,一但掌握了JavaScript语言的核心,那么在网页中有效地使用JavaScript的关键就是学会使用浏览器显示出来的文档对象模型(DOM)的特性.

客户端JavaScript的特性
1.控制文档的外观和内容
IE5.5和Netscape6还支持W3C DOM标准,该标准定义了一种标准的,可移植的访问HTML文档中所有元素和文本的方法.还定义了通过操作级联样式表CSS的样式性质来定位元素以及修改它们外观的方法.在这些浏览器中,客户端JavaScript对文档内容具有绝对的控制权,这种控制可以进行无穷的脚本化.

2.对浏览器的控制
Location对象可以在浏览器中任何一个框架或窗口中装载并显示出任意的URL所指的文档
History对象则可以在用户的浏览历史中前后移动,模拟浏览器的Forward按钮和Back按钮的动作.

3.与HTML表单的交互
比如提交表单之前对表单的数据进行验证

4.与用户的交互

5.用cookie读写客户的状态
当初发明cookie时,它是由服务器端脚本专用的,虽然它们被存储在客户端,但是只有服务器能够对它们进行读写操作,JavaScript改变了上述的规则,因为JavaScript程序能够读写cookie的值,还可以根据cookie的值动态生成文档内容

6.其他特性

JavaScript不能做什么
1. 不具有任何图形处理能力.
2. 不允许对文件进行读写操作
3. 不支持任何形式的联网技术

JavaScript URL伪协议
对于更简单的JavaScript试验,有时可以使用JavaScript:URL伪协议来计算JavaScript表达式并返回计算的结果,一个JavaScript URL是由JavaScript:协议说明符加上任意的JavaScript代码(语句之间用隔开)构成的.当浏览器装载了这样的URL时,它将执行其中的JavaScript代码.这样的URL中的最后一个表达式的值将被转换成字符串,该字符串会被作为新文档显示在WEB浏览器中,例如:
javascript:5%2
javascript:x = 3; (x < 5)? "x is less": "x is greater"
javascript:d = new Date(  ); typeof d;
javascript:for(i=0,j=1,k=0,fib=1; i<10; i++,fib=j+k,k=j,j=fib) alert(fib);
javascript:s=""; for(i in document) s+=i+":"+document[i]+"\n"; alert(s);



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics