| CARVIEW |
JavaScript
JavaScript是一種廣泛用於客户端Web开发的腳本語言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持類別。以它为基础,制定了ECMAScript标准。
虽然更常用于网页,但JavaScript也可以用于其他场合,比如服务器端编程(参见Rhino)。
完整的JavaScript实现包含三个部分:ECMAScript,DOM(文档对象模型),BOM。
目录 |
[编辑] 澄清誤解
- JavaScript是Java的变种吗?
- 在最初Netscape公司,將他們創造的腳本語言命名為LiveScript,後來Netscape在與Sun合作之後才將其改名為JavaScript。JavaScript最初的确是受Java启发而开始设计的,而且设计的目的之一就是“看上去像Java”[2],因此语法上有很多类似之处,许多名称和命名规范也借自Java。但是实际上,JavaScript的主要设计原则源自Self和Scheme[3],它与Java本质上是不同的。它与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。
- JavaScript与JScript相同吗?
- 為了取得技術優勢,微軟推出了JScript來迎戰JavaScript的腳本語言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)建立了ECMA-262标准(ECMAScript)。现在两者都属于ECMAScript的实现。
- JavaScript是一门簡單的语言吗?
- 儘管JavaScript作為給非程式人員的腳本語言,而非作為給程式人員的程式語言來推廣和宣傳,但是JavaScript是一門具有非常豐富特性的語言,它有著和其他程式語言一樣的複雜性,或更甚複雜。實際上,必需對JavaScript有紮實的理解才能用它來撰寫比較複雜的程式。
[编辑] JavaScript的Hello World程式
<html>
<head>
<title>JavaScript的Hello World程式</title>
<script type="text/javascript">
//<![CDATA[
document.write("Hello, world!"); //直接在瀏覽器視窗顯示。
alert("Hello, world!"); //開啟對話視窗顯示。
//]]>
</script>
</head>
<body>
HTML 本文……
</body>
</html>
或是在瀏覽器的網址列(location bar)中輸入javascript:URL,以互動方式表示:
javascript:document.write("Hello, world!");alert("Hello, world!"); /*比較上例,有何不同?*/
[编辑] 版本歷史
| 版本 | 發佈日期 | 基於 | Netscape Navigator | Mozilla Firefox | Internet Explorer | Opera | Safari | Google Chrome |
|---|---|---|---|---|---|---|---|---|
| 1.0 | 1996年3月 | 2.0 | 3.0 | |||||
| 1.1 | 1996年8月 | 3.0 | ||||||
| 1.2 | 1997年6月 | 4.0-4.05 | ||||||
| 1.3 | 1998年10月 | ECMA-262 1st edition / ECMA-262 2nd edition | 4.06-4.7x | 4.0 | ||||
| 1.4 | Netscape Server |
|||||||
| 1.5 | 2000年11月 | ECMA-262 3rd edition | 6.0 | 1.0 | 5.5 (JScript 5.5), 6 (JScript 5.6), 7 (JScript 5.7), 8 (JScript 6) |
6.0, 7.0, 8.0, 9.0 |
||
| 1.6 | 2005年11月 | 1.5 + Array extras + Array and String generics + E4X | 1.5 | 3.0, 3.1 | ||||
| 1.7 | 2006年10月 | 1.6 + Pythonic generators + Iterators + let | 2.0 | 3.2, 4.0 | 1.0 | |||
| 1.8 | 2008年6月 | 1.7 + Generator expressions + Expression closures | 3.0 | |||||
| 1.8.1 | 1.8 + Minor Updates | 3.5 | ||||||
| 1.9 | 1.8.1 + ECMAScript 5 Compliance | 4 |
[编辑] 比較
| 版本 | 說明 | 實現 |
|---|---|---|
| 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 3rd Edition。符合該標準的實現有:
- Microsoft公司的JScript。
- Mozilla的Javascript-C(C語言實現),現名SpiderMonkey
- Mozilla的Rhino(Java實現)
- Digital Mars公司的DMDScript
- Google公司的V8
- WebKit
目前ECMA-262 4th Edition正在開發的過程中,與其對應的JavaScript的版本為JavaScript 2.0,目前也正在開發過程中。
不同於伺服器端腳本語言,例如PHP与ASP,JavaScript是客户端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支持而可以獨立運行。所以在早期程序員比較青睞於JavaScript以減少對伺服器的負擔,而與此同時也帶來另一個問題:安全性。而隨著伺服器的強壯,雖然現在的程序員更喜歡運行於伺服端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。
JavaScript是一種腳本語言,其原始碼在發往客户端執行之前不需經過編譯,而是將文本格式的字符代碼發送給瀏覽器由瀏覽器解釋執行。解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而且由於每次重新載入都會重新解譯,載入後,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。
與其相對應的是編譯語言,例如Java。Java的原始碼在傳遞到客户端執行之前,必須經過編譯,因而客户端上必須具有相應平台上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平台編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因為已經封裝,所以能保證安全性。
[编辑] 參見
[编辑] 參考文獻
- ^ Sun Trademarks. Sun Microsystems [2007-11-08].
- ^ TechVision: Innovators of the Net: Brendan Eich and JavaScript (HTML). 2009-3-19.
- ^ ECMAScript Language Overview (PDF). 2007-10-23: p.4.
- ^ John Resig. Versions of JavaScript. Ejohn.org [2009-05-19].
[编辑] 外部連結
- JavaScript Note
- W3Schools上的JavaScript線上教學(英文)
- JAVAScript範例收集
- 还原JavaScript的真实历史
- About JavaScript Mozilla.org上的資源(英文)(简体中文)(日文)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||
其他语言
- Afrikaans
- العربية
- Žemaitėška
- Беларуская
- Беларуская (тарашкевіца)
- Български
- ᨅᨔ ᨕᨘᨁᨗ
- Català
- Česky
- Чӑвашла
- Dansk
- Deutsch
- Ελληνικά
- English
- Esperanto
- Español
- Eesti
- Euskara
- فارسی
- Suomi
- Français
- Galego
- עברית
- हिन्दी
- Hrvatski
- Magyar
- Interlingua
- Bahasa Indonesia
- Íslenska
- Italiano
- 日本語
- Basa Jawa
- ქართული
- ភាសាខ្មែរ
- 한국어
- 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
- 粵語