商品參數 書 名:高級程序設計(第3版) 作 者:[美]Nicholas C. Zakas 著 李鬆峰, 曹力 譯 齣版社:人民郵電齣版社 齣版日期:2012-03 I S B N:9787115275790 頁 碼:730 版 次:1 裝 幀:平裝 開 本:16開 重 量:1145g 定 價:99.00元
目錄 第1章 簡介 1.1 簡史 1.2 實現 1.2.1 ECMAScript 1.2.2 文檔對象模型(DOM) 1.2.3 瀏覽器對象模型(BOM) 1.3 版本 1.4 小結 第2章 在HTML中使用 2.1 <*>元素 2.1.1 標簽的位置 2.1.2 延遲腳本 2.1.3 異步腳本 2.1.4 在XHTML申的用法 2.1.5 不推薦使用的語法 2.2 嵌入代碼與外部文件 2.3 文檔模式 2.4 元素 2.5 小結 第3章 基本概念 3.1 語法 3.1.1 區分大小寫 3.1.2 標識符 3.1.3 注釋 3.1.4 嚴格模式 3.1.5 語句 3.2關鍵字和保留字 3.3 變量 3.4 數據類型 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 0bj ect類型 3.5 操作符 3.5.1 一元操作符 3.5.2 位操作符 3.5.3 布爾操作符 3.5.4 乘性操作符 3.5.5 加性操作符 3.5.6 關係操作符 3.5.7 相等操作符 3.5.8 條件操作符 3.5.9賦值操作符 3.5.10 逗號操作符 3.6 語句 3.6.1 if語句 3.6.2 do—while語句 3.6.3 while語句 3.6.4 for語句 3.6.5 for—in語句 3.6.6 label語句 3.6.7 break和continue語句 3.6.8 with語句 3.6.9 switch語句 3.7 函數 3.7.1 理解參數 3.7.2 沒有重載 3.8 小結 第4章 變量、作用域和內存問題 第5章 引用類型 第6章 麵嚮對象的程序設計 第7章 函數錶達式 第8章 BOM 第9章 客戶端檢測 第10章 DOM 第11章 DOM擴展 第12章 DOM2和DOM3 第13章 事件 第14章 錶單腳本 第15章 使用Canvas繪圖 第16章 HTML5腳本編程 第17章 錯誤處理與調試 第18章 GN xml 第19章 E4X 第20章 JSON 第21章 Ajax與Comet 第22章 高級技巧 第23章 離綫應用與客戶端存儲 第24章 實踐 第25章 新興的API 附錄A ECMAScript Harmony 附錄B 嚴格模式 附錄C Java Script庫 附錄D Java Script工具
在綫試讀 簡介 本章內容 曆史迴顧 是什麼 與ECMAScript的關係 的不同版本 avaScript誕生於1995年。當時,它的主要目的是處理以前由服務器端語言(如Perl)負責的一些輸入驗證操作。在問世之前,必須把錶單數據發送到服務器端纔能確定用戶是否沒有填寫某個必填域,是否輸入瞭無效的值。NetscapeNavigator希望通過來解決這個問題。在人們普遍使用電話拔號上網的年代,能夠在客戶端完成一些基本的驗證任務絕對是令人興奮的。畢竟,撥號上網的速度之慢,導緻瞭與服務器的每一次數據交換事實上都成瞭對人們耐心的一次考驗。 自此以後,逐漸成為市麵上常見瀏覽器必備的一項特色功能。如今,的用途早已不再局限於簡單的數據驗證,而是具備瞭與瀏覽器窗口及其內容等幾乎所有方麵交互的能力。今天的已經成為一門功能全麵的編程語言,能夠處理復雜的計算和交互,擁有瞭閉包、匿名(lamda,拉姆達)函數,甚至元編程等特性。作為Web的一個重要組成部分,的重要性是不言而喻的,就連手機瀏覽器,甚至那些專為殘障人士設計的瀏覽器等非常規瀏覽器都支持它。當然,微軟的例子更為典型。雖然有自己的客戶端腳本語言VBScript,但微軟仍然在InternetExplorer的早期版本中加入瞭自己的實現 。 從一個簡單的輸入驗證器發展成為一門強大的編程語言,完全齣乎人們的意料。應該說,它既是一門非常簡單的語言,又是一門非常復雜的語言。說它簡單,是因為學會使用它隻需片刻功夫;而說它復雜,是因為要真正掌握它則需要數年時間。要想全麵理解和掌握,關鍵在於弄清楚它的本質、曆史和局限性。
內容介紹 《高級程序設計(第3版)》是超級暢銷書的新版。ECMAScript5和HTML5在標準之爭中雙雙勝齣,使大量專有實現和客戶端擴展正式進入規範,同時也為增添瞭很多適應未來發展的新特性。《高級程序設計》這一版除增加5章全新內容外,其他章節也有較大幅度的增補和修訂,新內容篇幅約占三分之一。全書從語言實現的各個組成部分——語言核心、DOM、BOM、事件模型講起,深入淺齣地探討瞭麵嚮對象編程、Ajax與Comet服務器端通信,HTML5錶單、媒體、Canvas(包括WebGL)及WebWorkers、地理定位、跨文檔傳遞消息、客戶端存儲(包括IndexedDB)等新API,還介紹瞭離綫應用和與維護、性能、部署相關的開發實踐。《高級程序設計(第3版)》附錄展望瞭未來的API和ECMAScriptHarmony規範。 《高級程序設計(第3版)》適閤有一定編程經驗的Web應用開發人員閱讀,也可作為高校及社會實用技術培訓相關專業課程的教材。
細節圖
作者介紹 Nicholas C. Zakas(尼古拉斯?澤卡斯)世界Web技術專傢,現為雅虎公司界麵呈現架構師,負責MyYahoo!和雅虎首頁等大訪問量站點的設計。尼古拉斯擁有豐富的Web開發和界麵設計經驗,曾經參與許多世界大公司的Web解決方案開發。他還是HighPerformance 一書的作者,並與他人閤作撰寫瞭Professional Ajax和Even FasterWebSites。尼古拉斯擁有梅裏馬剋學院計算機科學學士學位和埃迪柯特學院的MBA學位。他的個人網站是www.nczonline.net,他的Twitter彆名是@slicknet。
探索現代 Web 應用的基石:一款全麵深入的 JavaScript 編程指南 在這個數字浪潮席捲一切的時代,Web 應用已不再是簡單的信息展示平颱,而是集交互性、動態性、智能化於一身的復雜生態係統。而驅動這一切核心動力的,正是 ubiquitous 的 JavaScript 語言。它從最初的網頁腳本語言,一路進化,如今已成為前端開發、後端開發、移動開發乃至桌麵應用開發不可或缺的利器。如果您渴望掌握這一強大的工具,深入理解其內在機製,並能自如地構建齣令人驚嘆的 Web 應用,那麼,這本書將是您不容錯過的旅程起點。 本書並非僅僅羅列語法規則,而是緻力於為您構建一個完整、深入的 JavaScript 知識體係。它將帶領您從 JavaScript 的基礎概念齣發,一步步邁入其精妙而復雜的進階領域。通過對語言核心特性的詳盡剖析,您將能夠深刻理解 JavaScript 的工作原理,從而擺脫“知其然,不知其所以然”的尷尬境地,真正做到遊刃有餘。 從零開始,穩固根基:語言基礎的再審視 許多開發者可能已經接觸過 JavaScript,但對一些基礎概念的理解可能停留在錶麵。本書將重新審視並深入講解 JavaScript 的核心基礎,確保您的根基穩固。我們將從變量、數據類型(包括原始類型和引用類型)、運算符、流程控製語句(如條件語句和循環語句)等方麵入手,但這絕非簡單的語法迴顧。我們將著重強調這些基礎概念在實際開發中的意義和最佳實踐。例如,我們會深入探討 JavaScript 中“值傳遞”與“引用傳遞”的區彆,這對於理解對象和數組的操作至關重要,避免因誤解而産生的潛在 Bug。 此外,函數作為 JavaScript 的一級公民,其重要性不言而喻。本書將詳細講解函數的聲明、調用、參數傳遞,並深入探討作用域(包括全局作用域、函數作用域、塊級作用域)和閉包。閉包是 JavaScript 中一個強大而又容易被誤解的概念,我們將通過大量實例,剖析閉包的工作原理,以及它在實現數據封裝、模塊化開發等方麵的廣泛應用。您將學會如何利用閉包來創建私有變量,構建更健壯、可維護的代碼。 掌握異步編程的藝術:應對現代 Web 的挑戰 現代 Web 應用的核心在於其交互性和實時性,而這一切都離不開異步編程。JavaScript 的單綫程模型在處理大量 I/O 操作時,如果采用同步方式,將導緻頁麵阻塞,用戶體驗急劇下降。本書將係統地講解 JavaScript 中的異步編程模型,包括迴調函數、Promise、async/await 等。 迴調函數是異步編程的早期實現方式,但其嵌套過深易導緻“迴調地獄”。本書將分析迴調函數的優缺點,並引導您如何優化迴調的使用。接著,我們將重點介紹 Promise,它提供瞭一種更優雅、更可讀的方式來處理異步操作。您將學會如何創建、鏈式調用 Promise,以及如何利用 `Promise.all()`、`Promise.race()` 等方法來管理多個並發的異步任務。 最後,async/await 語法糖的齣現,極大地簡化瞭異步編程的編寫和理解。本書將深入講解 async/await 的工作機製,展示如何通過它來編寫齣如同同步代碼般簡潔易懂的異步邏輯,從而大幅提升開發效率和代碼質量。理解並熟練運用異步編程,將是您構建高性能、響應迅速的 Web 應用的關鍵。 精通麵嚮對象與原型鏈:理解 JavaScript 的內在邏輯 JavaScript 是一種多範式語言,它支持麵嚮對象編程,但其實現方式與傳統的基於類的語言有所不同,而是基於原型鏈。本書將花費大量篇幅深入講解 JavaScript 的原型鏈機製。您將理解每個對象都擁有一個內部鏈接指嚮另一個對象,這就是原型。當您嘗試訪問一個對象的屬性或方法時,如果該對象本身沒有,JavaScript 引擎就會沿著原型鏈嚮上查找,直到找到為止,或者到達鏈的末端(null)。 我們將詳細講解構造函數、原型對象、實例對象之間的關係。您將學會如何通過原型繼承來復用代碼,以及如何使用 `Object.create()`、`instance.__proto__`、`Constructor.prototype` 等方式來操作原型鏈。理解原型鏈是掌握 JavaScript 對象模型,實現代碼復用和繼承的基石。此外,本書還將探討 ES6 引入的類(class)語法糖,並解釋它在底層是如何映射到原型鏈的,讓您在享受類語法的便利時,依然能深刻理解其背後的原理。 深入探索現代 JavaScript 特性:擁抱 ES6+ 的強大功能 隨著 ECMAScript 標準的不斷更新,JavaScript 語言本身也在飛速發展,湧現瞭大量令人興奮的新特性。本書將緊跟時代步伐,深入講解 ES6 (ECMAScript 2015) 及之後版本引入的關鍵特性。 您將學習到: 箭頭函數 (Arrow Functions): 它們簡潔的語法以及與 `this` 綁定的獨特行為。 模闆字符串 (Template Literals): 輕鬆實現字符串插值和多行字符串。 解構賦值 (Destructuring Assignment): 方便地從數組和對象中提取數據。 新的數據結構: `Set` 和 `Map`,以及它們在處理集閤和鍵值對時的優勢。 展開運算符 (Spread Operator) 和剩餘參數 (Rest Parameters): 靈活地處理數組和函數參數。 模塊化 (Modules): 使用 `import` 和 `export` 來組織和復用代碼,構建大型項目。 Promises 相關的改進: 進一步理解 `Promise.prototype.finally()`。 迭代器 (Iterators) 和生成器 (Generators): 實現自定義的迭代邏輯,處理復雜的數據流。 Proxy 和 Reflect: 提供更強大的元編程能力,實現對象行為的攔截和自定義。 掌握這些現代 JavaScript 特性,將極大地提升您的編碼效率,並使您的代碼更加簡潔、易讀、易維護。 理解 JavaScript 的運行機製:深入瀏覽器與 Node.js 環境 JavaScript 的強大之處在於其跨平颱運行的能力,尤其是在瀏覽器環境中,它負責動態交互,而在 Node.js 環境下,它又可以作為服務器端語言。本書將為您揭示 JavaScript 在不同環境下的運行機製。 在瀏覽器環境中,我們將探討事件循環(Event Loop)、調用棧(Call Stack)、宏任務隊列(Macrotask Queue)和微任務隊列(Microtask Queue)的概念。理解這些概念是掌握 JavaScript 異步編程和避免性能問題的關鍵。您將明白為什麼某些異步操作會以特定的順序執行,以及如何利用這些知識來優化您的 Web 應用性能。 在 Node.js 環境下,我們將介紹其核心模塊、非阻塞 I/O 模型以及事件驅動架構。您將瞭解如何利用 Node.js 來構建高性能的服務器端應用,處理文件係統操作、網絡通信等。 掌握調試與測試的最佳實踐:保障代碼質量 再精妙的代碼也難免齣現 Bug。本書將引導您掌握有效的 JavaScript 調試技巧,包括使用瀏覽器開發者工具(如 Chrome DevTools)、設置斷點、單步執行、查看變量值、分析調用棧等。 同時,代碼測試是保證軟件質量的重要環節。我們將介紹單元測試、集成測試等概念,並介紹一些流行的 JavaScript 測試框架(如 Jest、Mocha 等)的使用方法。通過學習如何編寫和運行測試,您將能夠盡早發現並修復 Bug,提高代碼的健壯性和可維護性。 構建健壯、可維護的應用程序:設計模式與最佳實踐 擁有紮實的基礎和精湛的技巧固然重要,但如何將這些能力轉化為高效、可維護的應用程序,則需要引入設計模式和最佳實踐。本書將介紹一些在 JavaScript 開發中常用的設計模式,如單例模式、工廠模式、觀察者模式、模塊模式等。通過學習和應用這些設計模式,您可以更好地組織代碼結構,解決常見的編程問題,並使您的代碼更具可擴展性和可維護性。 此外,本書還將強調編寫清晰、規範、易於理解的代碼的重要性。我們將討論命名約定、代碼風格、錯誤處理策略、代碼重構等方麵的內容,幫助您養成良好的編程習慣。 展望未來:踏上持續學習的徵程 JavaScript 生態係統日新月異,新的框架、庫和工具層齣不窮。本書的最終目的,是為您打下堅實的基礎,讓您能夠自信地迎接未來的技術挑戰。掌握瞭本書所涵蓋的知識,您將不再局限於某個特定的框架或庫,而是能夠融會貫通,快速學習和掌握新的技術。 無論您是初涉編程的新手,還是希望提升技能的資深開發者,本書都將是您在 JavaScript 之旅中不可或缺的夥伴。它將引導您深入理解這門語言的精髓,賦予您構建現代 Web 應用的強大能力。現在,就讓我們一起踏上這段充滿挑戰與驚喜的 JavaScript 探索之旅吧!
不得不說,這本書在案例的選取和分析上做得非常齣色。它並沒有僅僅停留在理論層麵,而是通過一個個實際的、貼近開發的案例,將抽象的概念變得生動具體。比如,在講解DOM操作的時候,它並沒有隻給齣增刪改查的API,而是通過一個模擬用戶界麵的小項目,展示瞭如何用JavaScript實現動態交互效果,如何響應用戶的點擊、輸入等事件。這種“學以緻用”的學習方式,讓我感覺自己不是在讀一本技術書,而是在跟著一個經驗豐富的老師進行項目實操。讓我印象深刻的是,書中還分析瞭一些常見的JavaScript陷阱和錯誤,並且給齣瞭規避的方法,這對於避免我們在實際開發中走彎路非常有幫助。我尤其喜歡它在講解Ajax的時候,詳細地剖析瞭HTTP請求和響應的流程,以及如何處理服務器返迴的數據,這讓我對前後端交互有瞭更清晰的認識。感覺這本書的作者不僅技術功底紮實,而且還很懂如何教學,懂得如何讓讀者真正地“學會”而不是“記住”。