從驅動全球商業、貿易及管理領域不計其數的復雜應用程序的角度來看,說 JavaScript 已經成為當今世界上最流行的編程語言一點兒都不為過。
JavaScript 是一種非常松散的面向對象語言,也是 Web 開發中極受歡迎的一門語言。 JavaScript,盡管它的語法和編程風格與 Java 都很相似,但它卻不是 Java 的“輕量級”版本,甚至與 Java 沒有任何關系。 JavaScript 是一種全新的動態語言,它植根于全球數億網民都在使用的 Web 瀏覽器之中,致力于增強網站和 Web 應用程序的交互性。
在本書中,我們將對 JavaScript 追根溯源,從它在最早的 Netscape 瀏覽器中誕生談起,一直談到今天的它對 DOM 和 Ajax 的強大支持。讀者將通過本書掌握如何運用和擴展這門語言,從而更好地滿足自己的需求,以及如何實現客戶端與服務器的無縫通信,而又不必求助于 Java 或隱藏的網頁框架(frame元素)。一言以蔽之,本書將教會你在面對各種常見的 Web 開發問題時,如何拿出自己的 JavaScript 解決方案。
本書讀者對象
本書將下列三類人員作為目標讀者:
(1) 熟悉面向對象編程、經驗豐富而又打算學習 JavaScript 的開發人員, JavaScript 畢竟與 Java、 C++等傳統 OO 語言存在著諸多聯系;
(2) 有意提升自己網站和 Web 應用程序易用性的 Web 開發人員;
(3) 希望全面深入地理解這門語言的初級 JavaScript 開發人員。
此外,本書也適合熟悉下列相關技術的讀者閱讀:
(1) Java
(2) PHP
(3) ASP.NET
(4) HTML
(5) CSS
(6) XML
本書不適合沒有計算機基礎知識的初學者,也不適合只想為網站添加簡單交互功能的讀者。建議這些朋友學習閱讀 Beginning JavaScript, 3rd Edition(Wiley, 2007)一書①。
① 本書中文版《JavaScript 入門經典(第 3 版)》已經由清華大學出版社出版。——譯者注(以下腳注如無特殊說明,均為譯者注)
本書內容
本書提供了 JavaScript 開發人員必須掌握的內容,全面涵蓋了 JavaScript 的各種高級、有用的特性。
本書首先介紹了 JavaScript 的起源及其發展現狀,隨后討論了構成 JavaScript 實現的各個組成部分,重點講解了 ECMAScript 和 DOM 標準。此外,還對不同 Web 瀏覽器的 JavaScript 實現之間存在的差異,給出了相應的說明。
在此基礎上,本書從講解 JavaScript 的基本概念入手,探討了 JavaScript 面向對象程序設計和繼承的方式,以及如何在 HTML 等標記語言中使用它。在深入剖析了事件和事件處理之后,又解釋了各種瀏覽器檢測技術。本書還探討了 HTML5、 Selectors API 和 File API 等一系列新 API。
本書最后一部分專門討論了高級主題,涉及性能和內存優化、最佳實踐以及對 JavaScript 未來的展望。
本書結構
本書共 25 章,各章簡介如下。
第 1 章“ JavaScript 簡介”,講述了 JavaScript 的起源:因何而生,如何發展,現狀如何。涉及的概念主要有 JavaScript 與 ECMAScript 之間的關系、 DOM(Document Object Model,文檔對象模型)、BOM(Browser Object Model,瀏覽器對象模型)。此外,還將討論 ECMA(European ComputerManufacturer’s Association,歐洲計算機制造商協會)和 W3C(World Wide Web Consortium,萬維網聯盟)制定的一些相關標準。
第 2 章“在 HTML 中使用 JavaScript”,介紹了如何在 HTML 中使用 JavaScript 創建動態網頁。這一章不僅展示了在網頁中嵌入 JavaScript 的各種方式,還討論了 JavaScript 內容類型(content-type)及其與<script>元素的關系。
第 3 章“基本概念”,討論了 JavaScript 語言的基本概念,包括語法和流控制語句。這一章也分析了 JavaScript 與其他基于 C 的語言在語法上的相同和不同之處,還介紹了與內置操作符有關的類型轉換問題。
第 4 章“變量、作用域和內存問題”,探討了 JavaScript 如何處理其松散類型的變量。這一章還討論了原始值和引用值之間的差別,以及與變量有關的執行環境的相應內容。最后,通過介紹 JavaScript的垃圾收集機制,解釋了變量在退出作用域時釋放其內存的問題。
第 5 章“引用類型”,詳盡介紹了 JavaScript 內置的所有引用類型,如 Object 和 Array。這一章對 ECMA-262 規范中描述的每一種引用類型既做了理論上的闡釋,又從瀏覽器實現的角度給出了介紹。
第 6 章“面向對象的程序設計”,講述了在 JavaScript 中如何實現面向對象的程序設計。由于JavaScript 沒有類的概念,因此這一章從對象創建和繼承的層面上展示了一些流行的技術。此外,這一章還講解了函數原型的概念,并對函數原型與整個面向對象方法的關系進行了探討。
第 7 章“函數表達式”,集中介紹了 JavaScript 中最為強大的一個特性——函數表達式。相關的內容涉及閉包、 this 對象的角色、模塊模式和創建私有對象成員等。
第 8 章“ BOM”,介紹 BOM(Browser Object Model,瀏覽器對象模型),即負責處理與瀏覽器自身有關的交互操作的對象集合。這一章全面介紹了每一個 BOM 對象,包括 window、 document、location、 navigator 和 screen。
第 9 章“客戶端檢測”,討論了檢測客戶端機器及其支持特性的各種手段,包括特性檢測及用戶代理字符串檢測的不同技術。這一章還就每種手段的優缺點及適用情形給出了詳細說明。
第 10 章“ DOM”,介紹 DOM (Document Object Model,文檔對象模型),即 DOM1 規定的 JavaScript中的 DOM 對象。這一章也簡要介紹了 XML 及其與 DOM 的關系,為深入探討所有 DOM 規范及其定義的操作網頁的方式奠定了基礎。
第 11 章“ DOM 擴展”,介紹了其他 API 以及瀏覽器本身為 DOM 添加的各種功能。涉及內容包括Selectors API、 Element Traversal API 和 HTML5 擴展。
第 12 章“ DOM2 和 DOM3”,在前兩章的基礎上繼續探討了 DOM2 和 DOM3 中新增的 DOM 屬性、方法和對象。這一章還討論了 IE 與其他瀏覽器的兼容性問題。
第 13 章“事件”,解釋了 JavaScript 中事件的本質,對遺留機制的支持,以及 DOM 對事件機制的重新定義。這一章討論了多種設備,包括 Wii 和 iPhone。
第 14 章“表單腳本”,講述如何使用 JavaScript 增強表單的交互性,突破瀏覽器的局限性。這一章的討論主要圍繞單個表單元素如文本框、選擇框,以及圍繞數據驗證和操作展開。
第 15 章“使用 Canvas 繪圖”,討論了<canvas>標簽以及如何通過它來動態繪圖。不僅涵蓋 2D上下文,也將討論 WebGL(3D)上下文,可以為創建動畫和游戲夯實基礎。
第 16 章“ HTML5 腳本編程”,介紹了 HTML5 規定的 JavaScript API,涉及跨文檔傳遞消息、拖放 API 和以編程方式控制<audio>和<video>元素,以及管理歷史狀態。
第 17 章“錯誤處理與調試”,討論瀏覽器如何處理 JavaScript 代碼錯誤,并展示了一些處理錯誤的方式。這一章針對每種瀏覽器分別討論了相應的調試工具和技術,還給出了簡化調試工作的建議。
第 18 章“ JavaScript 與 XML”,展示了 JavaScript 中用于讀取和操作 XML(eXtensible MarkupLanguage,可擴展標記語言)的特性。這一章分析了不同瀏覽器提供的 XML 支持和對象的差異,給出了編寫跨瀏覽器代碼的簡易方法。此外,這一章還介紹了用于在客戶端轉換 XML數據的 XSLT (eXtensibleStylesheet LanguageTransformations,可擴展樣式表語言轉換)技術。
第 19 章“ E4X”,討論了 E4X(ECMAScript for XML, ECMAScript 中的 XML 擴展) ;設計 E4X 的出發點是簡化 XML 處理任務。這一章探討了在處理 XML 時,使用 E4X 與使用 DOM 相比有哪些優勢。
第 20 章“ JSON”,介紹了作為 XML 替代格式的 JSON,包含瀏覽器原生支持的 JSON 解析和序列化,以及使用 JSON 時要注意的安全問題。
第 21 章“ Ajax 與 Comet”,講解了常用的 Ajax 技術,包括使用 XMLHttpRequest 對象及 CORS(Cross-Origin Resource Sharing,跨來源資源共享) API 實現跨域 Ajax 通信。這一章展示了瀏覽器在實現與支持方面存在的差異,同時也給出了一些使用建議。
第 22 章“高級技巧”,深入講解了一些 JavaScript 中較復雜的模式,包括函數柯里化(currying)、部分函數應用和動態函數。這一章還討論了如何創建自定義的事件框架和使用 ECMAScript 5 創建防篡改對象。
第 23 章“離線應用與客戶端存儲”,討論了如何檢測應用離線以及在客戶端機器中存儲數據的各種技術。先從受到最廣泛支持的特性 cookie 談起,繼而介紹了新興的客戶端存儲技術,如 Web Storage和 IndexedDB。
第 24 章“最佳實踐”,探討了在企業級環境中使用 JavaScript 的各種方式。其中,著眼于提高可維護性的內容包括編碼技巧、格式化和通用編程實踐。這一章還介紹了改善代碼執行性能及速度優化的一些技術。最后討論了部署問題,包括如何創建構建過程。
第 25 章“新興的 API”,介紹了為增強瀏覽器中的 JavaScript 而創建的新 API。雖然這些 API 還沒有得到完整或全面的支持,但它們已經嶄露頭角,有些瀏覽器也已經部分地實現了這些 API。這一章的內容主要是 Web 計時和文件 API。
使用示例
要運行本書中的示例,需要安裝下列軟件:
Windows XP、 Windows 7 或 Mac OS X;
Internet Explorer 6 及更高版本、 Firefox 2 及更高版本、 Opera 9 及更高的版本、 Chrome、 Safari 2
及更高版本。
JavaScript高級程序設計第三版.CHM格式下載地址 http://pan.baidu.com/s/1citN90 密碼:8pum
JavaScript高級程序設計第三版.PDF格式下載地址 http://pan.baidu.com/s/1c2d6ci0 密碼: z4kd
完整的示例源代碼可以在百度云下載:鏈接: http://pan.baidu.com/s/1kVK9Tn5 密碼:cvxw
圖靈社區會員 StinkBC(StinkBC@gmail.com) 專享 尊重版權