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