JavaScript
维库,知识与思想的自由文库
JavaScript,是一种基于对象的脚本语言。网景通讯公司最初在它的Navigator 2.0产品上设计并实现的,原名LiveScript。目前已经在WWW上广泛用于动态Web页面的编程语言。
目录 |
[编辑] 澄清误解
JavaScript并非Java
JavaScript是由网景通讯公司(Netscape)最初在它的Navigator 2.0产品上设计并实现的,原名LiveScript,除了句法上有一些相似之处以及都能够提供网页中的可执行内容以外,JavaScript和Java是完全不相干的。
JavaScript并不简单
实际上尽管JavaScript是作为一种给非程序员提供的脚本语言而不是给程序员提供的程序设计语言来推广和宣传的,但是JavaScript是一门具有非常丰富特性的程序设计语言,和其他所有的语言一样复杂或者更复杂,你需要对JavaScript有扎实的理解才能用JavaScript执行比较复杂的任务。
[编辑] JavaScript版本历史
| 版本 | 说明 | 实现 |
|---|---|---|
| JavaScript1.0 | 原始版本,基本废弃。 | 由Netscape 2 实现。 |
| JavaScript1.1 | 引入真正的Array对象,消除了大量错误。 | 由Netscape 3 实现。 |
| JavaScript1.2 | 引入switch语句、正则表达式和大量新特性,基本上符合ECMAv1。 | 由Netscape 4 实现。 |
| JavaScript1.3 | 修正了不兼容性,符合ECMAv1。 | 由Netscape 4.5 实现。 |
| JavaScript1.4 | 只由Netscape 服务器产品 实现。 | |
| JavaScript1.5 | 引入了异常处理,符合ECMAv3。 | 由Mozilla和Netscape 6 实现。 |
| 版本 | 说明 | 实现 |
|---|---|---|
| JScript1.0 | 基本上相当于JavaScript1.0。 | 由IE 3 的早期版本实现。 |
| JScript2.0 | 基本上相当于JavaScript1.1。 | 随IIS3.0发布,并未包含在浏览器中。 |
| JScript3.0 | 基本上相当于JavaScript1.3,符合ECMAv1。 | 由IE 4 实现。 |
| JScript4.0 | 还没有任何Web浏览器能实现它。 | |
| JScript5.0 | 支持异常处理。部分符合ECMAv3。 | 由IE 5 实现。 |
| JScript5.5 | 基本上相当于JavaScript1.5,符合ECMAv3。 | 由IE 5.5 实现。 |
| JScript5.6 | 在客户端与JScript5.5没有区别。 | 由IE 6 实现。 |
| 版本 | 说明 | 实现 |
|---|---|---|
| ECMA v1 | 标准化了JavaScript1.1的基本特性,并添加了一些新特性。没有标准化switch语句和正则表达式。 | 由Netscape 4.5 和IE 4 实现。 |
| ECMA v2 | ECMA v1的维护版本,只添加了说明。 | 由Netscape 4.5 和IE 4 实现。 |
| ECMA v3 | 标准化了switch语句、异常处理和正则表达式。 | 由Mozilla、Netscape 6 和 IE 5.5 实现。 |
JavaScript已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。目前最新版为ECMA-262 3th Edition。符合该标准的实现有:
- Microsoft公司的JScript.
- Mozilla的Javascript-C(C语言实现),现名Spidermonkey
- Mozilla的Rhino(Java实现)
- Digital Mars公司的DMDScript。
据测试,Spidermonkey的性能最好。 目前ECMA-262 4th Edition正在开发的过程中,与其对应的JavaScript的版本为JavaScript 2.0,目前也正在开发过程中。
不同于服务器端脚本语言,例如ASP,JavaScript是客户端脚本语言,也就是说JavaScript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。而随着服务器的强壮,虽然现在的程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。
JavaScript是一种解释语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户端由浏览器解释执行。但这种语言的弱点是容错性较差,如果一条执行不了,那么下面的语言也无法执行,而且由于一条一条的解释,速度较慢。
与其相对应的是编译语言。例如Java。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。但是它必须在服务器端进行编译,这样就拖延了时间。但因为已经封装,所以能保证安全性。
[编辑] 參見
[编辑] 站外連結
*greation于2007-3-28 20:51修复上面的链接!
|
|
|
|---|---|
| 工业编程语言 | A+ - ActionScript - Ada - 汇编语言 - B - Brainfuck - COBOL - Curl - D - Delphi - Eiffel - Erlang - FORTRAN - IronPython - Java - JavaScript - JScript - Jython - LISP - Lua - MATLAB - MATHEMATICA - Nuva - Oberon - OCaml - Pascal - Perl - PHP - PostScript - Powerbuilder - Python - R - REXX - Ruby - Self - Smalltalk - SQL - Tcl/Tk - C# - F# - J# - Microsoft Visual C# |
| C/C++语言 | C - C++ - C++/CLI - Objective-C - Microsoft Visual C++ |
| BASIC语言 | BASIC - BASICA - GW-BASIC - QBASIC - QuickBASIC - True BASIC - Turbo BASIC - PowerBASIC - DarkBASIC -ETBASIC Visual Basic .NET - Visual Basic - VBScript - VBA |
| GPU用著色器語言 | Cg - GLSL - HLSL |
| 学术编程语言 | APL/J - Haskell - Logo - ML - Prolog - Scheme - SAC |
| 其他编程语言 | ALGOL - Clipper - Forth - Modula-2/Modula-3 - MUMPS - PL/I - Simula |
|
|
|
|---|---|
| 文档呈现语言 | HTML* - XHTML* - XML* - XForms* - DHTML* |
| 样式格式描述语言 | CSS* - XSL* |
| 动态网页技术 | CGI - ASP - ASP.NET - ColdFusion - JSP - PHP |
| 客户端交互技术 | ActiveX - Java Applet - Flash - AJAX - XMLHTTP* - Silverlight |
| 客户端脚本语言 | JavaScript - JScript - VBScript - ECMAScript |
| 标识定位语言 | URL - URI - XPath |
| 文档纲要语言 | DTD* - XML Schema* |
| *由W3C制定和维护的标准与规范 | |



