JavaScript

维基百科,自由的百科全书

跳转到: 导航, 搜索

JavaScript是一種廣泛用於客户端Web开发腳本語言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMAScript标准。

虽然更常用于网页,但JavaScript也可以用于其他场合,比如服务器端编程(参见Rhino)。

JavaScript是Sun公司的注册商标。[1]

目录

[编辑] 澄清誤解

  • JavaScript是Java的变种吗?
JavaScript最初的确是受Java启发而开始设计的,而且设计的目的之一就是“看上去像Java”[2],因此语法上有很多类似之处,许多名称和命名规范也借自Java。但是实际上,JavaScript的主要设计原则源自SelfScheme[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>
</head>
<body>
	<script type="text/javascript">
	document.write("Hello, world!")   //直接在瀏覽器視窗顯示。
	alert("Hello, world!")      //開啟對話視窗顯示。
	</script>
	html超連結本文……
</body>
</html>

或是在瀏覽器的網址列(location bar)中輸入 javascript:URL,以互動方式表示:

javascript:document.write("Hello, world!");alert("Hello, world!"); /*比較上例,有何不同?*/

[编辑] 版本歷史

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 實現。
JavaScript1.6 引入E4X、Array的item location methods和取代方法、Array generic、String generic。
JavaScript1.7 引入generator、取代器、Array comprehensions、let關鍵字、解構賦值(Destructuring assignment)

[编辑] 比較

ECMA
版本 說明 實現
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。符合該標準的實現有:

目前ECMA-262 4th Edition正在開發的過程中,與其對應的JavaScript的版本為JavaScript 2.0,目前也正在開發過程中。

不同於伺服器端腳本語言,例如PHPASP,JavaScript是客户端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支持而可以獨立運行。所以在早期程序員比較青睞於JavaScript以減少對伺服器的負擔,而與此同時也帶來另一個問題:安全性。而隨著伺服器的強壯,雖然現在的程序員更喜歡運行於伺服端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。

JavaScript是一種腳本語言,其源代碼在發往客户端執行之前不需經過編譯,而是將文本格式的字符代碼發送給瀏覽器由瀏覽器解釋執行。解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而且由於每次重新載入都會重新解譯,載入後,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。

與其相對應的是編譯語言,例如Java。Java的源代碼在傳遞到客户端執行之前,必須經過編譯,因而客户端上必須具有相應平台上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平台編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因為已經封裝,所以能保證安全性。

[编辑] 參見

您可以在維基教科書中查找此百科条目的相關電子教程:

[编辑] 參考文獻

  1. ^ Sun Trademarks.Sun Microsystems.於2007年11月8日查閱.
  2. ^ TechVision: Innovators of the Net: Brendan Eich and JavaScript(HTML)(2009年3月19日).
  3. ^ ECMAScript Language Overview(PDF),p.4(2007年10月23日).

[编辑] 外部連結

个人工具