JavaScript介紹
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基于原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。 在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。因為Netscape與Sun合作,Netscape管理層希望它外觀看起來像Java,因此取名為JavaScript。但實際上它的語法風格與Self及Scheme較為接近。[1]? 為了取得技術優勢,微軟推出了JScript,CEnvi推出ScriptEase,與JavaScript同樣可在瀏覽器上運行。為了統一規格,因為JavaScript兼容于ECMA標準,因此也稱為ECMAScript。
#javaScript與java不是一種語言 組成部分
ECMAScript,描述了該語
javascript組成 言的語法和基本對象。
[2]? 文檔對象模型(DOM),描述處理網頁內容的方法和接口。
[2]? 瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接口。
[2]?
基本特點
JavaScript是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
[3]?
是一種解釋性腳本語言(代碼不進行預編譯)。[4]? 主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。[4]? 可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。[4]? 跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。 Javascript腳本語言同其他語言一樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。Javascript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。
[5]?
日常用途
嵌入動態文本于HTML頁面。[4]? 對瀏覽器事件做出響應。[4]? 讀寫HTML元素。[4]? 在數據被提交到服務器之前驗證數據。[4]? 檢測訪客的瀏覽器信息。[4]? 控制cookies,包括創建和修改等。[4]? 基于Node.js技術進行服務器端編程。[6]? 歷史
它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的注冊商標。Ecma國際以JavaScript為基礎制定了ECMAScript標準。JavaScript也可以用于其他場合,如服務器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。
[7]? 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標準的實現有:
Microsoft公司的JScript. Mozilla的JavaScript-C(C語言實現),現名SpiderMonkey Mozilla的Rhino(Java實現) Digital Mars公司的DMDScript Google公司的V8 WebKit 版本發布日期基于Netscape NavigatorMozilla FirefoxInternet ExplorerOperaSafariGoogle 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實現。 |
WEB技術
HTML | XHTML???HTML 5???CSS???TCP/IP |
|
XML | XML???XSL???XSLT???XSL-FO???XPath???XPointer???XLink???DTD???XML Schema???DOM???XForms???SOAP??WSDL???RDF???RSS???WAP???Web Services |
|
Web腳本 | JavaScript???HTML DOM???DHTML???VBScript???AJAX???jQuery???JSON???E4X???WMLScript |
|
.NET | Microsoft.NET???.NET Mobile |
|
網頁技術與標準
文檔呈現語言 | ??HTML | ??XHTML | ??XML | ??XForms | | ??DHTML | ? | ? | ? | | ? |
|
|
動態網頁技術 | ??CGI | ??FastCGI | ??ASP | ??ASP.NET | | ??ColdFusion | ??JSP | ??PHP | ? | | ? |
|
|
客戶端交互技術 | ??ActiveX | ??Java Applet | ??JavaFX | ??AJAX | | ??Silverlight | ??ActionScript | ??Flex | ??AIR | | ? |
|
|
客戶端腳本語言 | ??JavaScript | ??JScript | ??VBScript | ??ECMAScript | | ? |
|
|
標識定位語言 | ??URL | ??URI | ??XPath | ??URL重寫 | | ? |
|
|
組成部分
ECMAScript,描述了該語
javascript組成 言的語法和基本對象。
[2]? 文檔對象模型(DOM),描述處理網頁內容的方法和接口。
[2]? 瀏覽器對象模型(BOM),描述與瀏覽器進行交互的方法和接口。
[2]?
基本特點
JavaScript是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
[3]?
是一種解釋性腳本語言(代碼不進行預編譯)。[4]? 主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。[4]? 可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。[4]? 跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。 Javascript腳本語言同其他語言一樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。Javascript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。
[5]?
日常用途
嵌入動態文本于HTML頁面。[4]? 對瀏覽器事件做出響應。[4]? 讀寫HTML元素。[4]? 在數據被提交到服務器之前驗證數據。[4]? 檢測訪客的瀏覽器信息。[4]? 控制cookies,包括創建和修改等。[4]? 基于Node.js技術進行服務器端編程。[6]? 歷史
它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的注冊商標。Ecma國際以JavaScript為基礎制定了ECMAScript標準。JavaScript也可以用于其他場合,如服務器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。
[7]? 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標準的實現有:
Microsoft公司的JScript. Mozilla的JavaScript-C(C語言實現),現名SpiderMonkey Mozilla的Rhino(Java實現) Digital Mars公司的DMDScript Google公司的V8 WebKit 版本發布日期基于Netscape NavigatorMozilla FirefoxInternet ExplorerOperaSafariGoogle 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實現。 |
WEB技術
HTML | XHTML???HTML 5???CSS???TCP/IP |
|
XML | XML???XSL???XSLT???XSL-FO???XPath???XPointer???XLink???DTD???XML Schema???DOM???XForms???SOAP??WSDL???RDF???RSS???WAP???Web Services |
|
Web腳本 | JavaScript???HTML DOM???DHTML???VBScript???AJAX???jQuery???JSON???E4X???WMLScript |
|
.NET | Microsoft.NET???.NET Mobile |
|
網頁技術與標準
文檔呈現語言 | ??HTML | ??XHTML | ??XML | ??XForms | | ??DHTML | ? | ? | ? | | ? |
|
|
動態網頁技術 | ??CGI | ??FastCGI | ??ASP | ??ASP.NET | | ??ColdFusion | ??JSP | ??PHP | ? | | ? |
|
|
客戶端交互技術 | ??ActiveX | ??Java Applet | ??JavaFX | ??AJAX | | ??Silverlight | ??ActionScript | ??Flex | ??AIR | | ? |
|
|
客戶端腳本語言 | ??JavaScript | ??JScript | ??VBScript | ??ECMAScript | | ? |
|
|
標識定位語言 | ??URL | ??URI | ??XPath | ??URL重寫 | | ? |
|
|
轉載于:https://www.cnblogs.com/feifei-cyj/p/7777354.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的JavaScript学习第一天(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。