雜項:JavaScript

ylbtech-雜項:JavaScript
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱爲JavaScript引擎,爲瀏覽器的一部分,普遍用於客戶端的腳本語言,最先是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增長動態功能。
在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。由於Netscape與Sun合做,Netscape管理層但願它外觀看起來像Java,所以取名爲JavaScript。但實際上它的語法風格與Self及Scheme較爲接近。
爲了取得技術優點,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript一樣可在瀏覽器上運行。爲了統一規格,由於JavaScript兼容於ECMA標準,所以也稱爲 ECMAScript
 
1. 組成部分返回頂部

言的語法和基本對象。
文檔對象模型(DOM),描述處理網頁內容的方法和接口
瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接口javascript

 
2. 基本特色返回頂部
JavaScript是一種屬於 網絡的腳本語言,已經被普遍用於 Web應用開發,經常使用來 爲網頁添加各式各樣的動態功能爲用戶提供更流暢美觀的瀏覽效果。一般JavaScript腳本是經過 嵌入在HTML中來實現自身的功能的。
  1. 是一種解釋性腳本語言(代碼不進行預編譯)。
  2. 主要用來向HTML(標準通用標記語言下的一個應用)頁面添加 交互行爲
  3. 能夠直接嵌入HTML頁面,但寫成單獨的js文件有利於 結構和行爲的分離 
  4. 跨平臺特性,在絕大多數瀏覽器的支持下,能夠在多種平臺下運行(如 Windows、Linux、Mac、Android、iOS等)。
Javascript腳本語言同其餘語言同樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。Javascript提供了 四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則能夠完成較複雜的信息處理。  
 
3. 平常用途返回頂部
  1. 嵌入動態文本於HTML頁面。   
  2. 對瀏覽器事件作出響應。   
  3. 讀寫 HTML元素
  4. 在數據被提交到服務器以前驗證數據。   
  5. 檢測訪客的瀏覽器信息 
  6. 控制cookies,包括建立和修改等 
  7. 基於Node.js技術進行服務器端編程 
 
4. 歷史返回頂部
它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的註冊商標。Ecma國際以JavaScript爲基礎制定了ECMAScript標準。JavaScript也能夠用於其餘場合,如服務器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。   
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具備很是豐富的特性。  
發展初期,JavaScript的標準並未肯定,同期有Netscape的JavaScript,微軟的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(歐洲計算機制造商協會)的協調下,由Netscape、Sun、微軟、Borland組成的工做組肯定統一標準:ECMA-262。
 
5. 特性返回頂部
JavaScript腳本語言具備如下特色:
(1) 腳本語言。JavaScript是一種解釋型的腳本語言,C、C++等語言先編譯後執行,而JavaScript是在程序的運行過程當中逐行進行解釋。
(2)基於對象。JavaScript是一種基於對象的腳本語言,它不只能夠建立對象,也能使用現有的對象。
(3)簡單。JavaScript語言中採用的是弱類型的變量類型,對使用的數據類型未作出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。
(4)動態性。JavaScript是一種採用事件驅動的腳本語言,它不須要通過Web服務器就能夠對用戶的輸入作出響應。在訪問一個網頁時,鼠標在網頁中進行鼠標點擊或上下移、窗口移動等操做JavaScript均可直接對這些事件給出相應的響應。
(5)跨平臺性。JavaScript腳本語言不依賴於操做系統,僅須要瀏覽器的支持。所以一個JavaScript腳本在編寫後能夠帶到任意機器上使用,前提上機器上的瀏覽器支 持JavaScript腳本語言,目前JavaScript已被大多數的瀏覽器所支持。  
不一樣於服務器端腳本語言,例如PHP與ASP,JavaScript主要被做爲客戶端腳本語言在用戶的瀏覽器上運行,不須要服務器的支持。因此在早期程序員比較青睞於JavaScript以減小對服務器的負擔,而與此同時也帶來另外一個問題:安全性。
而隨着服務器的強壯,雖然程序員更喜歡運行於服務端的腳本以保證安全,但JavaScript仍然以其跨平臺、容易上手等優點大行其道。同時,有些特殊功能(如 AJAX)必須依賴Javascript在客戶端進行支持。隨着引擎 如V8和框架如Node.js的發展,及其事件驅動及異步IO等特性JavaScript逐漸被用來編寫服務器端程序。 
 
6. 編程返回頂部
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){}//這是正確的
 
 
Javascript被歸類爲 直譯語言,由於主流的引擎都是每次運行時加載代碼並解譯。 V8是將全部代碼解譯後再開始運行,其餘引擎則是逐行解譯( SpiderMonkey會將解譯過的指令暫存,以提升性能,稱爲實時編譯),但因爲V8的核心部份多數用Javascript撰寫(而SpiderMonkey是用C++),所以在不一樣的測試上,二者性能互有優劣。與其相對應的是編譯語言,例如C語言,以編譯語言編寫的程序在運行以前,必須通過編譯,將代碼編譯爲機器碼,再加以運行。 
 
7. 版本返回頂部
JavaScript已經被 Netscape公司提交給 ECMA制定爲標準,稱之爲 ECMAScript,標準編號ECMA-262。目前最新版爲ECMA-262 5th Edition。符合ECMA-262 3rd Edition標準的實現有:
  1. Microsoft公司的 JScript.
  2. Mozilla的JavaScript-C(C語言實現),現名 SpiderMonkey
  3. Mozilla的 Rhino(Java實現)
  4. Digital Mars公司的DMDScript
  5. Google公司的 V8
版本 發佈日期 基於 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    


 
8. 比較返回頂部
一、
版本 說明 實現
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實現。
二、
9.返回頂部
 
10.返回頂部
五、
11.返回頂部
 
12.返回頂部
 
13.返回頂部
 
14.返回頂部
 
15.返回頂部
 
 
16.返回頂部
 
warn 做者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。
相關文章
相關標籤/搜索