官术网_书友最值得收藏!

第一篇 JavaScript入門篇

第1章 JavaScript語言概述

1.1 JavaScript是什么

應用程序開發(fā)者在學習一門新語言之前,興趣肯定聚焦在諸如“它是什么”、“它能做什么”等問題上,而不是“如何開發(fā)”等問題。同樣,學習JavaScript腳本語言,首先來揭開其面紗:“JavaScript是什么?”

1.1.1 JavaScript簡史

20世紀90年代中期,大部分互聯(lián)網(wǎng)用戶使用28.8kb/s的調制解調器連接到網(wǎng)絡進行網(wǎng)上沖浪,為解決網(wǎng)頁功能簡單的問題,HTML文檔已經(jīng)變得越來越復雜和龐大,更讓用戶痛苦的是,為驗證一個表單的有效性,客戶端必須與服務器端進行多次的數(shù)據(jù)交互。難以想象這樣的情景:當用戶填完表單并單擊提交后,經(jīng)過漫長的幾十秒等待,服務器端返回的不是“提交成功”的喜悅,卻是“某某字段必須為阿拉伯數(shù)字,請單擊按鈕返回上一頁面重新填寫表單!”的錯誤提示!當時業(yè)界已開始考慮開發(fā)一種客戶端腳本語言,用于解決諸如表單合法性驗證等簡單而實用的問題。

1995年Netscape和Sun公司聯(lián)合開發(fā)出JavaScript腳本語言,并在Netscape Navigator 2中實現(xiàn)了JavaScript腳本規(guī)范的第一個版本,即JavaScript 1.0版,不久就顯示了其強大的生機和發(fā)展?jié)摿Α.敃rNetscape Navigator主宰著Web瀏覽器市場,而Microsoft的IE則扮演追趕者的角色,為了跟上Netscape的步伐,Microsoft在其Internet Explorer 3中以JScript為名,發(fā)布了一個JavaScript 1.0的克隆版本JScript 1.0。

1997年,為了避免無序競爭,同時解決JavaScript幾個版本中語法、特性等方面的混亂問題,JavaScript 1.1作為草案提交給ECMA(歐洲計算機廠商協(xié)會),并由Netscape、Sun、Microsoft、Borland及其他一些對腳本語言比較感興趣的公司組成TC39(第39技術委員會,以下簡稱TC39),經(jīng)協(xié)商后推出了ECMA-262規(guī)范版本,在其中定義了以JavaScript為藍本、全新的ECMAScript腳本語言。

ECMA-262標準的Edition 1版本刪除了JavaScript 1.1中與瀏覽器相關的部分,同時要求對象是平臺無關的,并且支持Unicode標準。

在接下來的幾年時間里,ISO/IEC(國際標準化組織/國際電工委員會)采納ECMAScript作為Web腳本語言標準(ISO/IEC-16262)。從此,ECMAScript作為JavaScript腳本的基礎,開始得到越來越多的瀏覽器廠商不同程度的支持。

為了與ISO/IEC-16262標準嚴格一致,ECMA-262標準發(fā)布Edition 2版本,此版本并沒有添加、更改和刪除任何內容。ECMA-262標準Edition 3版本提供了對字符串處理、錯誤定義和數(shù)值輸出等方面的更新,同時增加了對try…catch異常處理、正則表達式、新的控制語句等方面的完美支持,它標志著ECMAScript成為一門真正的編程語言,以ECMAScript為核心的JavaScript腳本語言得到了迅猛的發(fā)展。ECMA-262標準Edition 4版本正在制定過程中,可能明確類的定義方法和命名空間等概念。表1.1為ECMA-262標準4個版本之間的異同,以及瀏覽器版本支持情況。

表1.1 ECMA -262標準各版本間的異同及瀏覽器支持情況

1999年6月,ECMA發(fā)布ECMA-290標準,主要添加了使用ECMAScript來開發(fā)可復用組件的內容。

2005年12月,ECMA發(fā)布ECMA-357標準(ISO/IEC 22537),主要增加對擴展標記語言XML的有效支持。

注意:JavaScript腳本也能進行服務器端應用程序的開發(fā),但相對于客戶端的功能和應用范圍而言,一般仍將其作為一門客戶端腳本語言對待。

對JavaScript歷史的了解有助于開發(fā)者迅速掌握這門語言,同時也能加深對JavaScript語言編程潛力的理解,下面介紹其語言特點。

1.1.2 JavaScript有何特點

JavaScript是一種基于對象和事件驅動的客戶端腳本語言,并具有相對的安全性,主要用于創(chuàng)建交互性較強的動態(tài)頁面。其主要特點介紹如下。

· 基于對象:JavaScript是基于對象的腳本編程語言,能通過DOM(文檔結構模型)及自身提供的對象和操作方法來實現(xiàn)所需的功能。

· 事件驅動:JavaScript采用事件驅動方式,能響應鍵盤、鼠標及瀏覽器窗口事件等,并執(zhí)行指定的操作。

· 解釋性語言:JavaScript是一種解釋性腳本語言,無須專門的編譯器進行編譯,在嵌入JavaScript腳本的HTML文檔被瀏覽器載入時逐行地解釋,大量節(jié)省客戶端與服務器端進行數(shù)據(jù)交互的時間。

· 實時性:JavaScript事件處理是實時的,無須經(jīng)服務器就可直接對客戶端的事件做出響應,并用處理結果實時更新目標頁面。

· 動態(tài)性:JavaScript提供簡單高效的語言流程,靈活處理對象的各種方法和屬性,同時及時響應文檔頁面事件,實現(xiàn)頁面的交互性和動態(tài)性。

· 跨平臺:JavaScript腳本的正確運行依賴于瀏覽器,而與具體的操作系統(tǒng)無關。只要客戶端裝有支持JavaScript腳本的瀏覽器,JavaScript腳本運行結果就能正確反映在客戶端瀏覽器平臺上。

· 開發(fā)使用簡單:JavaScript基本結構類似于C語言,采用小程序段的方式編程,并提供了簡易的開發(fā)平臺和便捷的開發(fā)流程,即能夠嵌入到HTML文檔中供瀏覽器解釋執(zhí)行。同時JavaScript的變量類型是弱類型,使用不嚴格。

· 相對安全性:JavaScript是客戶端腳本,通過瀏覽器解釋執(zhí)行。它不允許直接訪問本地計算機,并且不能將數(shù)據(jù)存到服務器上,它也不允許對網(wǎng)絡文檔進行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互,從而有效地防止數(shù)據(jù)的丟失。

綜上所述,JavaScript是一種有著較強生命力和發(fā)展?jié)摿Φ哪_本描述語言,可被直接嵌入到HTML文檔中,供瀏覽器解釋執(zhí)行;直接響應客戶端事件,如驗證數(shù)據(jù)表單合法性等,并調用相應的處理方法,迅速返回處理結果并更新頁面,實現(xiàn)Web交互性和動態(tài)的要求。同時將大部分的工作交給客戶端處理,將Web服務器的資源消耗降到最低。

注意:之所以說相對安全性,是因為JavaScript代碼嵌入到HTML頁面中,在客戶端瀏覽該頁面過程中,瀏覽器自動解釋執(zhí)行該代碼,且不需要用戶的任何操作,從而給用戶帶來一定的風險。

主站蜘蛛池模板: 收藏| 万载县| 碌曲县| 垣曲县| 蓬溪县| 新营市| 定结县| 根河市| 黄梅县| 延寿县| 措勤县| 沙田区| 房产| 齐齐哈尔市| 洛浦县| 石景山区| 永德县| 大方县| 大渡口区| 井研县| 弋阳县| 长泰县| 高邑县| 肇源县| 读书| 中方县| 永康市| 土默特右旗| 交城县| 衡水市| 会东县| 金坛市| 湘西| 霍邱县| 太原市| 凭祥市| 吴桥县| 平潭县| 宁德市| 高雄县| 阳原县|