譯者序
Ajax的一夜風行,使JavaScript這門原本被視為玩具的語言承擔起了新的角色和任務,在瀏覽器環境中大放異彩。但由於歷史、瀏覽器廠商以及瀏覽器解析或實現環境之間迥異等各種原因,這門語言——正如大師Douglas Crockford所說——仍然是世界上最受誤解的語言。只要有一定的編程基礎,誰都可以耍一耍,但要寫好系統化的JavaScript,卻未必有多少人能遂心如願。雖然與有些語言比較起來,JavaScript多少有些不嚴謹並有設計上的缺陷,但隨著前端技術的發展,以及對JavaScript程式設計師越來越高的要求,JavaScript已經有了很大的發展和完善。因此,挖掘和發揮JavaScript內在的特點,避免和克服設計上的缺陷,才能符合現代前端技術編程的要求,才能編寫出“工業級”的JavaScript程式。. 本書的作者John Resig作為著名程式庫jQuery的主創者,在書中分享了對JavaScript專家級的理解和經驗,系統地總結了JavaScript的語言特點。正如第2章結尾所說:“只要能理解對象的行為、引用的處理和作用域的判斷,毫無疑問就能改變你編寫JavaScript代碼的習慣。”這是一本沒有“Hello world”的書,直切JavaScript本質,十分適合進階而又不摻雜水份。
書中後半部分的例子章節看起來比較適合喜歡有案例分析的讀者,但不夠深入,有虎頭蛇尾之嫌。在網上對本書的許多評論中,也指出John對書中的代碼檢查不夠嚴謹,影響了此書的實用性,在我們的翻譯過程中,都儘可能一一檢查並糾正了遇到的錯漏。然而,總體來說瑕不掩瑜,本書依然是需要向高級階段挑戰的讀者之良師益友。
作者簡介
JohnResig,世界級Javascript大師,著名框架jQuery的創造者,擁有多年的Web應用程式開發經驗。他現在是Mozilla公司的JavaScript傳道者,此前曾經在非贏利組織“每個兒童一台筆記本電腦(OLPC)”擔任程式設計師,並在羅切斯特理工學院從事過數據挖掘方面的研究。除了jQuery之外,他還開發7Sparklines程式庫、AniWiki、建模工具dModeler等許多有影響的應用程式。
媒體評論
要想了解真正深入的JavaScript技術,我推薦《精通JavaScript》。從各方面來看,這本書都非常優秀。.
——Jeremy Keith,著名Web設計師,Bulletproof Ajax一書作者
這兩年JavaScript圖書漸漸多起來了,但是我沒有見到哪本真正講述高級內容的,本書彌補了這一空白。千萬不要等閒視之,否則你很可能無法真正理解其中的精髓。
——Roger Johansson,
本書的深度令人難以置信,想提升自身功力的JavaScript程式設計師必讀。
——Nate Klaiber,資深Web架構師
此書是JavaScript快速進階的優秀之作,通過大量實用的示例講述了面向對象技術、創建可復用的代碼、DOM等內容,並指導讀者如何創建自己的JavaScript庫。如果你有JavaScript的編程基礎且希望能上一個新的台階,那么此書正好適合!
——Amazon評論
本書非常深入,缺乏編程經驗者勿入。
——Brett Merkey,資深Web程式設計師
我認為任何中高級JavaScript程式設計師都會從本書中獲益匪淺。其中深入揭示了JavaScript面向對象、事件處理的內部機制,還有許多精彩的實例。全書近乎完美。..
——Robert Nyman,瑞典Web程式設計師
本書非常生動流暢,閱讀時絲毫沒有倦意。
——mayjune2004,Drupal程式設計師
你還認為JavaScript只是一門小打小鬧的玩具語言?本書將會改變你的看法。書中系統地闡述了許多隱秘特性,看過後你會有豁然開朗的感覺。第一部分是JavaScript進階必看,而第二、第三部分可以偷學很多有用的技巧。
——豆瓣評論
極富啟發性,所有JavaScript程式設計師必讀。
——Matthew Pennell,Digital Web Magazine主編
目錄
第一部分 認識現代JavaScript
第1章 現代JavaScript程式設計 2
1.1 面向對象的JavaScript 2
1.2 測試代碼 3
1.3 打包分發 4
1.4 分離式DOM腳本編程 5
1.4.1 DOM 6
1.4.2 事件 7
1.4.3 JavaScript與CSS 8
1.5 Ajax 8
1.6 瀏覽器支持 11
1.7 小結 12
第二部分 專業JavaScript開發
第2章 面向對象的JavaScript 14
2.1 語言特性 14
2.1.1 引用 14
2.1.2 函式重載和類型檢查 16
2.1.3 作用域 19
2.1.4 閉包 20
2.1.5 上下文對象 23
2.2 面向對象基礎 24
2.2.1 對象 25
2.2.2 對象的創建 25
2.3 小結 30
第3章 創建可重用代碼 31
3.1 標準化面向對象的代碼 31
3.1.1 原型式繼承 31
3.1.2 類式繼承 32
3.1.3 Base庫 35
3.1.4 Prototype庫 36
3.2 打包 39
3.2.1 命名空間 40
3.2.2 清理代碼 42
3.2.3 壓縮 43
3.3 分發 45
3.4 小結 47
第4章 調試與測試的工具 48
4.1 調試 48
4.1.1 錯誤控制台 48
4.1.2 DOM查看器 52
4.1.3 FireBug 54
4.1.4 Venkman 55
4.2 測試 56
4.2.1 JSUnit 56
4.2.2 J3Unit 57
4.2.3 Test.Simple 58
4.3 小結 59
第三部分 分離式JavaScript
第四部分 Ajax
第五部分 JavaScript的未來
第六部分 附錄
附錄A DOM參考手冊 242
附錄B 事件參考手冊 257
附錄C 瀏覽器 273
索引 275