- JavaScript動態(tài)網(wǎng)頁開發(fā)詳解
- 楊水清等編著
- 8字
- 2018-12-29 18:53:21
第一篇 JavaScript入門篇
第1章 JavaScript語言概述
1.1 JavaScript是什么
應(yīng)用程序開發(fā)者在學(xué)習(xí)一門新語言之前,興趣肯定聚焦在諸如“它是什么”、“它能做什么”等問題上,而不是“如何開發(fā)”等問題。同樣,學(xué)習(xí)JavaScript腳本語言,首先來揭開其面紗:“JavaScript是什么?”
1.1.1 JavaScript簡史
20世紀(jì)90年代中期,大部分互聯(lián)網(wǎng)用戶使用28.8kb/s的調(diào)制解調(diào)器連接到網(wǎng)絡(luò)進(jìn)行網(wǎng)上沖浪,為解決網(wǎng)頁功能簡單的問題,HTML文檔已經(jīng)變得越來越復(fù)雜和龐大,更讓用戶痛苦的是,為驗證一個表單的有效性,客戶端必須與服務(wù)器端進(jìn)行多次的數(shù)據(jù)交互。難以想象這樣的情景:當(dāng)用戶填完表單并單擊提交后,經(jīng)過漫長的幾十秒等待,服務(wù)器端返回的不是“提交成功”的喜悅,卻是“某某字段必須為阿拉伯?dāng)?shù)字,請單擊按鈕返回上一頁面重新填寫表單!”的錯誤提示!當(dāng)時業(yè)界已開始考慮開發(fā)一種客戶端腳本語言,用于解決諸如表單合法性驗證等簡單而實用的問題。
1995年Netscape和Sun公司聯(lián)合開發(fā)出JavaScript腳本語言,并在Netscape Navigator 2中實現(xiàn)了JavaScript腳本規(guī)范的第一個版本,即JavaScript 1.0版,不久就顯示了其強(qiáng)大的生機(jī)和發(fā)展?jié)摿?。?dāng)時Netscape Navigator主宰著Web瀏覽器市場,而Microsoft的IE則扮演追趕者的角色,為了跟上Netscape的步伐,Microsoft在其Internet Explorer 3中以JScript為名,發(fā)布了一個JavaScript 1.0的克隆版本JScript 1.0。
1997年,為了避免無序競爭,同時解決JavaScript幾個版本中語法、特性等方面的混亂問題,JavaScript 1.1作為草案提交給ECMA(歐洲計算機(jī)廠商協(xié)會),并由Netscape、Sun、Microsoft、Borland及其他一些對腳本語言比較感興趣的公司組成TC39(第39技術(shù)委員會,以下簡稱TC39),經(jīng)協(xié)商后推出了ECMA-262規(guī)范版本,在其中定義了以JavaScript為藍(lán)本、全新的ECMAScript腳本語言。
ECMA-262標(biāo)準(zhǔn)的Edition 1版本刪除了JavaScript 1.1中與瀏覽器相關(guān)的部分,同時要求對象是平臺無關(guān)的,并且支持Unicode標(biāo)準(zhǔn)。
在接下來的幾年時間里,ISO/IEC(國際標(biāo)準(zhǔn)化組織/國際電工委員會)采納ECMAScript作為Web腳本語言標(biāo)準(zhǔn)(ISO/IEC-16262)。從此,ECMAScript作為JavaScript腳本的基礎(chǔ),開始得到越來越多的瀏覽器廠商不同程度的支持。
為了與ISO/IEC-16262標(biāo)準(zhǔn)嚴(yán)格一致,ECMA-262標(biāo)準(zhǔn)發(fā)布Edition 2版本,此版本并沒有添加、更改和刪除任何內(nèi)容。ECMA-262標(biāo)準(zhǔn)Edition 3版本提供了對字符串處理、錯誤定義和數(shù)值輸出等方面的更新,同時增加了對try…catch異常處理、正則表達(dá)式、新的控制語句等方面的完美支持,它標(biāo)志著ECMAScript成為一門真正的編程語言,以ECMAScript為核心的JavaScript腳本語言得到了迅猛的發(fā)展。ECMA-262標(biāo)準(zhǔn)Edition 4版本正在制定過程中,可能明確類的定義方法和命名空間等概念。表1.1為ECMA-262標(biāo)準(zhǔn)4個版本之間的異同,以及瀏覽器版本支持情況。
表1.1 ECMA -262標(biāo)準(zhǔn)各版本間的異同及瀏覽器支持情況

1999年6月,ECMA發(fā)布ECMA-290標(biāo)準(zhǔn),主要添加了使用ECMAScript來開發(fā)可復(fù)用組件的內(nèi)容。
2005年12月,ECMA發(fā)布ECMA-357標(biāo)準(zhǔn)(ISO/IEC 22537),主要增加對擴(kuò)展標(biāo)記語言XML的有效支持。
注意:JavaScript腳本也能進(jìn)行服務(wù)器端應(yīng)用程序的開發(fā),但相對于客戶端的功能和應(yīng)用范圍而言,一般仍將其作為一門客戶端腳本語言對待。
對JavaScript歷史的了解有助于開發(fā)者迅速掌握這門語言,同時也能加深對JavaScript語言編程潛力的理解,下面介紹其語言特點。
1.1.2 JavaScript有何特點
JavaScript是一種基于對象和事件驅(qū)動的客戶端腳本語言,并具有相對的安全性,主要用于創(chuàng)建交互性較強(qiáng)的動態(tài)頁面。其主要特點介紹如下。
· 基于對象:JavaScript是基于對象的腳本編程語言,能通過DOM(文檔結(jié)構(gòu)模型)及自身提供的對象和操作方法來實現(xiàn)所需的功能。
· 事件驅(qū)動:JavaScript采用事件驅(qū)動方式,能響應(yīng)鍵盤、鼠標(biāo)及瀏覽器窗口事件等,并執(zhí)行指定的操作。
· 解釋性語言:JavaScript是一種解釋性腳本語言,無須專門的編譯器進(jìn)行編譯,在嵌入JavaScript腳本的HTML文檔被瀏覽器載入時逐行地解釋,大量節(jié)省客戶端與服務(wù)器端進(jìn)行數(shù)據(jù)交互的時間。
· 實時性:JavaScript事件處理是實時的,無須經(jīng)服務(wù)器就可直接對客戶端的事件做出響應(yīng),并用處理結(jié)果實時更新目標(biāo)頁面。
· 動態(tài)性:JavaScript提供簡單高效的語言流程,靈活處理對象的各種方法和屬性,同時及時響應(yīng)文檔頁面事件,實現(xiàn)頁面的交互性和動態(tài)性。
· 跨平臺:JavaScript腳本的正確運行依賴于瀏覽器,而與具體的操作系統(tǒng)無關(guān)。只要客戶端裝有支持JavaScript腳本的瀏覽器,JavaScript腳本運行結(jié)果就能正確反映在客戶端瀏覽器平臺上。
· 開發(fā)使用簡單:JavaScript基本結(jié)構(gòu)類似于C語言,采用小程序段的方式編程,并提供了簡易的開發(fā)平臺和便捷的開發(fā)流程,即能夠嵌入到HTML文檔中供瀏覽器解釋執(zhí)行。同時JavaScript的變量類型是弱類型,使用不嚴(yán)格。
· 相對安全性:JavaScript是客戶端腳本,通過瀏覽器解釋執(zhí)行。它不允許直接訪問本地計算機(jī),并且不能將數(shù)據(jù)存到服務(wù)器上,它也不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互,從而有效地防止數(shù)據(jù)的丟失。
綜上所述,JavaScript是一種有著較強(qiáng)生命力和發(fā)展?jié)摿Φ哪_本描述語言,可被直接嵌入到HTML文檔中,供瀏覽器解釋執(zhí)行;直接響應(yīng)客戶端事件,如驗證數(shù)據(jù)表單合法性等,并調(diào)用相應(yīng)的處理方法,迅速返回處理結(jié)果并更新頁面,實現(xiàn)Web交互性和動態(tài)的要求。同時將大部分的工作交給客戶端處理,將Web服務(wù)器的資源消耗降到最低。
注意:之所以說相對安全性,是因為JavaScript代碼嵌入到HTML頁面中,在客戶端瀏覽該頁面過程中,瀏覽器自動解釋執(zhí)行該代碼,且不需要用戶的任何操作,從而給用戶帶來一定的風(fēng)險。
- 深度學(xué)習(xí)經(jīng)典案例解析:基于MATLAB
- Web Scraping with Python
- 軟件測試項目實戰(zhàn)之性能測試篇
- 大模型RAG實戰(zhàn):RAG原理、應(yīng)用與系統(tǒng)構(gòu)建
- Cocos2d-x Game Development Blueprints
- Everyday Data Structures
- 計算機(jī)應(yīng)用基礎(chǔ)項目化教程
- Learning Ionic
- C語言程序設(shè)計實踐
- Clojure High Performance Programming(Second Edition)
- Python第三方庫開發(fā)應(yīng)用實戰(zhàn)
- Java EE實用教程
- C語言程序設(shè)計實驗指導(dǎo)
- Java Web應(yīng)用開發(fā)
- jBPM6 Developer Guide