發展初期,JavaScript的標準並未確定,同期有網景的JavaScript,微軟的JScript和CEnvi的ScriptEase三足 鼎立。1997年,在ECMA(歐洲電腦製造商協會)的協調下,由Netscape、Sun、微軟、Borland組成的工作群組確定統一標 準:ECMA-262。
一般來說,完整的JavaScript包括以下幾個部分:
- ECMAScript,描述了該語言的語法和基本物件
- 文件物件模型(DOM),描述處理網頁內容的方法和介面
- 瀏覽器物件模型(BOM),描述與瀏覽器進行互動的方法和介面
- 是一種解釋性程式語言(代碼不進行預編譯)。
- 主要用來向 HTML 頁面添加互動行為。
- 可以直接嵌入 HTML 頁面,但寫成單獨的js檔案有利於結構和行為的分離。
歷史
它最初由網景公司的Brendan Eich設計,是一種動態、弱型別、基於原型的語言,內建支援型別。JavaScript是甲骨文公司的註冊商標。Ecma國際以JavaScript為基礎制定了ECMAScript標準。JavaScript也可以用於其他場合,如伺服器端編程。完整的JavaScript實作包含三個部分:ECMAScript,文件物件模型,瀏覽器物件模型。Netscape在最初將其腳本語言命名為LiveScript,後來Netscape在與Sun合作之後將其改名為JavaScript。JavaScript最初受Java啟發而開始設計的,目的之一就是「看上去像Java」,因此語法上有類似之處,一些名稱和命名規範也借自Java。但JavaScript的主要設計原則源自Self和Scheme。JavaScript與Java名稱上的近似,是當時網景為了行銷考慮與昇陽電腦達成協議的結果。為了取得技術優勢,微軟推出了JScript來迎戰JavaScript的腳本語言。為了互用性,Ecma國際(前身為歐洲電腦製造商協會)建立了ECMA-262標準(ECMAScript)。現在兩者都屬於ECMAScript的實作。儘管JavaScript作為給非程式人員的腳本語言,而非作為給程式人員的程式語言來推廣和宣傳,但是JavaScript具有非常豐富的特性。
常用函式庫
特性
不同於伺服器端腳本語言,例如PHP與ASP,JavaScript主要被作為客戶端腳本語言在用戶的瀏覽器上執行,不需要伺服器的支援。所以在早期程式員比 較青睞於JavaScript以減少對伺服器的負擔,而與此同時也帶來另一個問題:安全性。而隨著伺服器的強壯,雖然現在的程式員更喜歡執行於伺服端的腳 本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。同時,有些特殊功能(如AJAX)必須依賴Javascript在客戶端 進行支援。隨著引擎如V8和框架如Node.js的發展,及其事件驅動及異步IO等特性,JavaScript逐漸被用來編寫伺服器端程式。編程
JavaScript是一種腳本語言,其原始碼在發往客戶端執行之前不需經過編譯,而是將文字格式的字元代碼發送給瀏覽器由瀏覽器解釋執行。直譯語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而其解決辦法就是於使用try{}catch(){}
︰console.log("a"); //這是正確的 console.log("b"); //這是正確的 console.logg("c"); //這不是正確的,並會到這裡時停下來 console.log("d"); //這是正確的 console.log("e"); //這是正確的 /*解決辦法*/ try{console.log("a");}catch(e){} //這是正確的 try{console.log("b");}catch(e){} //這是正確的 try{console.logg("c");}catch(e){} //這不是正確的,但不會停下來,而是跳過 try{console.log("d");}catch(e){} //這是正確的 try{console.log("e");}catch(e){} //這是正確的
與其相對應的是編譯語言,例如C語言,以編譯語言編寫的程式在執行之前,必須經過編譯,將程式碼編譯為機器碼,再加以執行。
Hello World
以下是一個簡單的JavaScript Hello World︰<!DOCTYPE HTML> <html> <head> <title>簡單的JavaScript Hello World</title> <script type="text/javascript"> document.write("Hello, world!"); // 於瀏覽器視窗內直接顯示 alert("Hello, world!"); // 於alert裡顯示 console.log("Hello, world!"); // 於console裡顯示。IE下需要先开启开发工具控制台 </script> </head> <body> HTML 內文…… </body> </html>
javascript:
,以互動方式表示:javascript:alert("Hello world!");
版本
JavaScript 已經被 Netscape 公司送出給 ECMA 制定為標準,稱之為 ECMAScript,標準編號 ECMA-262。目前最新版為 ECMA-262 5th Edition[8]。符合 ECMA-262 3rd Edition 標準的實現有:- Microsoft 公司的 JScript
- Mozilla 的 JavaScript-C(C語言實現),現名 SpiderMonkey
- Mozilla 的 Rhino(Java 實現)
- Digital Mars 公司的 DMDScript
- Google 公司的 V8
- WebKit
版本 | 發佈日期 | 基於 | Netscape Navigator | Mozilla Firefox | Internet Explorer | Opera | Safari | Google Chrome |
---|---|---|---|---|---|---|---|---|
1.0 | 1996年3月 | 2.0 | ||||||
1.1 | 1996年8月 | 3.0 | 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 | 11.50 | ||||
1.8.1 | 1.8 + Native JSON support + Minor Updates | 3.5 | ||||||
1.8.2 | 2009年6月22日 | 1.8.1 + Minor updates | 3.6 | |||||
1.8.5 | 2010年7月27日 | 1.8.1 + ECMAScript 5 Compliance | 4 | 9 | 11.60 |
比較
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
文章出處:http://zh.wikipedia.org/wiki/JavaScript |
沒有留言:
張貼留言