| CARVIEW |
JavaScript
维基百科,自由的百科全书
JavaScript是一種物件導向的腳本語言,網景通訊公司最初在它的Netscape Navigator 2.0產品上設計並實現,原名LiveScript,目前已經在萬維網上廣泛用於動態網頁的編程語言。
目录 |
[编辑] 澄清誤解
- JavaScript不是Java
- JavaScript和Java除了語法上有一些相似之處,以及都能夠當作網頁的程式語言以外,兩者是完全不相干的。
- JavaScript不是JScript
- JavaScript並不簡單
- 儘管JavaScript作為給非程式人員的腳本語言,而非作為給程式人員的程式語言來推廣和宣傳,但是JavaScript是一門具有非常豐富特性的語言,它有著和其它程式語言一樣的複雜性,或更甚複雜。實際上,你必需對JavaScript有紮實的理解才能用它來撰寫比較複雜的程式。
[编辑] JavaScript的Hello World程式
<HTML>
<HEAD>
<TITLE>JavaScript的Hello World程式</TITLE>
</HEAD>
<BODY>
<script type="text/javascript">
document.write("Hello, World!") //直接在瀏覽器視窗顯示。
alert("Hello, World!") //開啟對話視窗顯示。
</script>
HTML超連結本文……
</BODY>
</HTML>
[编辑] 版本歷史
| 版本 | 說明 | 實現 |
|---|---|---|
| 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 實現。 |
| JavaScript1.6 | 引入E4X、Array的item location methods和取代方法、Array generic、String generic。 | |
| JavaScript1.7 | 引入generator、取代器、Array comprehensions、let關鍵字、解構賦值(Destructuring assignment) |
[编辑] 比較
| 版本 | 說明 | 實現 |
|---|---|---|
| JScript1.0 | 基本上相當於JavaScript1.0。 | 由IE 3 的早期版本實現。 |
| JScript2.0 | 基本上相當於JavaScript1.1。 | 由IE 3 的後期版本實現。 |
| 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,目前也正在開發過程中。
不同於伺服器端腳本語言,例如PHP与ASP,JavaScript是用戶端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支持而可以獨立運行。所以在早期程序員比較青睞於JavaScript以減少對伺服器的負擔,而與此同時也帶來另一個問題:安全性。而隨著伺服器的強壯,雖然現在的程序員更喜歡運行於伺服端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。
JavaScript是一種腳本語言,其源代碼在發往伺服器執行之前不需經過編譯,而是將文本格式的字符代碼發送給伺服器由瀏覽器解釋執行。解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而且由於每次重新載入都會重新解釋,載入後,有些代碼會延遲至運行時才解釋,甚至會多次解釋,所以速度較慢。
與其相對應的是編譯語言。例如Java。Java的源代碼在傳遞到伺服器執行之前,必須經過編譯,因而伺服器上必須具有相應平台上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平台編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因為已經封裝,所以能保證安全性。
[编辑] 外部連結
[编辑] 參見
| 程序设计语言 | |
|---|---|
| 工业编程语言 | A+ - ActionScript - Ada - 汇编语言 - B - Brainfuck - COBOL - Curl - D - Eiffel - Erlang - FORTRAN - IronPython - Java - JavaScript - JScript - Jython - LISP - Lua - MATLAB - MATHEMATICA - Nuva - Oberon - OCaml - Perl - PHP - PostScript - Powerbuilder - Python - R - REXX - Ruby - Self - Smalltalk - Tcl/Tk - C# - F# - J# - Microsoft Visual C# |
| C/C++语言 | C - C++ - Turbo 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 |
| Pascal/Delphi语言 | Pascal語法:(Pascal - Turbo Pascal - Object Pascal - Free Pascal) Pascal+Delphi語法:(Delphi) |
| GPU用著色器語言 | Cg - GLSL - HLSL |
| 学术编程语言 | APL/J - Haskell - Logo - ML - Prolog - Scheme - SAC |
| 資料庫相關编程语言 | Clipper - Visual FoxPro - SQL - SQL預存程序 |
| 其他编程语言 | ALGOL - 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制定和维护的标准与规范 | |
个人工具
其他语言
- العربية
- Žemaitėška
- Беларуская (тарашкевіца)
- Български
- Català
- Česky
- Dansk
- Deutsch
- Ελληνικά
- English
- Esperanto
- Español
- Eesti
- Euskara
- فارسی
- Suomi
- Français
- עברית
- Hrvatski
- Magyar
- Interlingua
- Bahasa Indonesia
- Íslenska
- Italiano
- 日本語
- 한국어
- Lietuvių
- Latviešu
- Македонски
- മലയാളം
- Монгол
- Bahasa Melayu
- Nederlands
- Norsk (bokmål)
- Polski
- Português
- Română
- Русский
- Simple English
- Slovenčina
- Slovenščina
- Shqip
- Српски / Srpski
- Svenska
- தமிழ்
- Тоҷикӣ
- ไทย
- Türkçe
- Українська
- Tiếng Việt
- 粵語

