-
javascript
鎖定
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,最先是在
HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增長動態功能。
爲了取得技術優點,
微軟推出了
JScript,CEnvi推出ScriptEase,與JavaScript一樣可在瀏覽器上運行。爲了統一規格,由於JavaScript兼容於ECMA標準,所以也稱爲
ECMAScript。
組成部分
文檔對象模型(DOM),描述處理網頁內容的方法和接口。[2]
瀏覽器對象模型(
BOM),描述與瀏覽器進行交互的
方法和
接口。[2]
基本特色
JavaScript是一種屬於網絡的腳本語言,已經被普遍用於Web應用開發,經常使用來爲網頁添加各式各樣的動態功能,爲用戶提供更流暢美觀的瀏覽效果。一般JavaScript腳本是經過嵌入在HTML中來實現自身的功能的。[3]
-
是一種解釋性腳本語言(代碼不進行
預編譯)。[4]
-
-
能夠直接嵌入HTML頁面,但寫成單獨的
js文件有利於結構和行爲的
分離。[4]
-
跨平臺特性,在絕大多數瀏覽器的支持下,能夠在多種平臺下運行(如
Windows、
Linux、Mac、Android、iOS等)。
Javascript腳本語言同其餘語言同樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。Javascript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則能夠完成較複雜的信息處理。[5]
平常用途
-
-
-
-
-
-
-
歷史
Netscape在最初將其腳本語言命名爲
LiveScript,後來Netscape在與Sun合做以後將其更名爲JavaScript。JavaScript最初受Java啓發而開始設計的,目的之一就是「看上去像Java」,所以語法上有相似之處,一些名稱和命名規範也借自Java。但JavaScript的主要設計原則源自
Self和
Scheme。JavaScript與Java名稱上的近似,是當時
Netscape爲了營銷考慮與Sun微系統達成協議的結果。爲了取得技術優點,微軟推出了
JScript來迎戰JavaScript的腳本語言。爲了互用性,
Ecma國際(前身爲歐洲計算機制造商協會)建立了ECMA-262標準(
ECMAScript)。二者都屬於ECMAScript的實現。儘管JavaScript做爲給非程序人員的腳本語言,而非做爲給程序人員的腳本語言來推廣和宣傳,可是JavaScript具備很是豐富的特性。[8]
發展初期,JavaScript的標準並未肯定,同期有
Netscape的JavaScript,微軟的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(歐洲計算機制造商協會)的協調下,由Netscape、Sun、微軟、Borland組成的工做組肯定統一標準:ECMA-262。
特性
JavaScript腳本語言具備如下特色:
(1)
腳本語言。JavaScript是一種解釋型的腳本語言,C、
C++等語言先
編譯後執行,而JavaScript是在程序的運行過程當中逐行進行解釋。
(2)基於對象。JavaScript是一種基於對象的腳本語言,它不只能夠建立對象,也能使用現有的對象。
(3)簡單。JavaScript語言中採用的是弱類型的變量類型,對使用的數據類型未作出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。
(4)動態性。JavaScript是一種採用事件驅動的腳本語言,它不須要通過Web服務器就能夠對用戶的輸入作出響應。在訪問一個網頁時,鼠標在網頁中進行鼠標點擊或上下移、窗口移動等操做JavaScript均可直接對這些事件給出相應的響應。
(5)跨平臺性。JavaScript腳本語言不依賴於操做系統,僅須要瀏覽器的支持。所以一個JavaScript腳本在編寫後能夠帶到任意機器上使用,前提上機器上的瀏覽器支 持JavaScript腳本語言,目前JavaScript已被大多數的瀏覽器所支持。[3]
不一樣於服務器端腳本語言,例如
PHP與
ASP,JavaScript主要被做爲客戶端腳本語言在用戶的瀏覽器上運行,不須要服務器的支持。因此在早期程序員比較青睞於JavaScript以減小對服務器的負擔,而與此同時也帶來另外一個問題:安全性。
而隨着服務器的強壯,雖然程序員更喜歡運行於服務端的腳本以保證安全,但JavaScript仍然以其跨平臺、容易上手等優點大行其道。同時,有些特殊功能(如
AJAX)必須依賴Javascript在客戶端進行支持。隨着引擎如V8和框架如
Node.js的發展,及其事件驅動及
異步IO等特性,JavaScript逐漸被用來編寫服務器端程序。
編程
JavaScript是一種腳本語言,其源代碼在發往客戶端運行以前不需通過
編譯,而是將文本格式的字符代碼發送給瀏覽器由瀏覽器解釋運行。直譯語言的弱點是安全性較差,並且在JavaScript中,若是一條運行不了,那麼下面的語言也沒法運行。而其解決辦法就是於使用try{}catch(){}︰
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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){}
|
Javascript被歸類爲直譯語言,由於主流的引擎都是每次運行時加載代碼並解譯。V8是將全部代碼解譯後再開始運行,其餘引擎則是逐行解譯(
SpiderMonkey會將解譯過的指令暫存,以提升性能,稱爲實時編譯),但因爲V8的核心部份多數用Javascript撰寫(而SpiderMonkey是用
C++),所以在不一樣的測試上,二者性能互有優劣。與其相對應的是編譯語言,例如
C語言,以編譯語言編寫的程序在運行以前,必須通過編譯,將代碼編譯爲機器碼,再加以運行。
版本
JavaScript已經被
Netscape公司提交給
ECMA制定爲標準,稱之爲
ECMAScript,標準編號ECMA-262。目前最新版爲ECMA-262 5th Edition。符合ECMA-262 3rd Edition標準的實現有:
-
-
-
-
Digital Mars公司的DMDScript
-
-
版本 |
發佈日期 |
基於 |
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 1 edition / ECMA-262 2 edition |
4.06-4.7x |
|
4.0 |
|
|
|
1.4 |
|
|
Netscape Server |
|
|
|
|
|
1.5 |
2000年11月 |
ECMA-262 3 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 |
|
|
比較
版本 |
說明 |
實現 |
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實現。 |
-
參考資料
-