JavaScript語言非常重要,相關的技術圖書也很多,但沒有任何一本書對JavaScript語言的重要部分(函數、閉包和原型)進行深入、的介紹,也沒有任何一本書講述跨瀏覽器代碼的編寫。本書是jQuery庫創始人編寫的一本深入剖析JavaScript語言的書。
本書共分四個部分,從準入訓練、見習訓練、忍者訓練和火影訓練四個層次講述了逐步成為JavaScript高手的全過程。全書從高級Web應用程序開發者所面臨的挑戰談起,由淺入深地覆蓋了測試和測試工具、函數、閉包、對象、正則表達式、定時器、運行時代碼求值、with語句、跨瀏覽器問題、元素的特性和屬性、事件處理、DOM以及CSS選擇器等眾多核心話題;將嚴謹的理論講解和實用的代碼示例相結合,引導讀者更加深入地了解JavaScript的神奇,充分展示了JavaScript語言的各種特性。
本書適合具備一定的JavaScript基礎知識的讀者閱讀,也適合從事程序設計工作并想要深入探索JavaScript語言的讀者閱讀。
本書內容具有深度,技術含量高,作者是jQuery JavaScript庫的創造者,在JS領域享有盛譽。
JavaScript語言非常重要,相關的技術圖書也很多,但沒有任何一本書對JavaScript語言的重要部分(函數、閉包和原型)進行深入、的介紹,也沒有任何一本書講述跨瀏覽器代碼的編寫。本書是jQuery庫創始人編寫的一本深入剖析JavaScript語言的書。
可以開始編寫更加出彩的JavaScript應用程序了,甚至也可以編寫自己的代碼庫和框架。
本書包括以下內容:
函數、對象、閉包、正則表達式等;
正確的角度探視應用程序和庫;
現代JavaScript設計;
處理跨瀏覽器開發的復雜性。
John Resig是公認的JavaScript專家以及jQuery庫的創造者。
Bear Bibeault是一名Web開發人員。他也是Ajax in Practice、Prototype and Scriptaculous in Action、以及jQuery in Action三本書的合著者。
目錄
部分 準入訓練
第1章 進入忍者世界3
1.1 即將探索的JavaScript
庫4
1.2 理解JavaScript語言5
1.3 跨瀏覽器注意事項6
1.4 當前實踐9
1.4.1 當前實踐:測試9
1.4.2 當前實踐:性能
分析9
1.5 總結10
第2章 利用測試和調試武裝
自己11
2.1 調試代碼12
2.1.1 日志記錄12
2.1.2 斷點14
2.2 測試用例生成15
2.3 測試框架17
2.3.1 Qunit19
2.3.2 YUI Test19
2.3.3 JsUnit19
2.3.4 新出的單元測試框架20
2.4 測試套件基礎知識20
2.4.1 斷言20
2.4.2 測試組21
2.4.3 異步測試23
2.5 總結25
第二部分 見習訓練
第3章 函數是根基29
3.1 函數的獨特之處?30
3.1.1 JavaScript的函數式特性
為何如此重要?31
3.1.2 使用比較器進行排序35
3.2 函數聲明37
3.2.1 作用域和函數40
3.3 函數調用44
3.3.1 從參數到函數形參45
3.3.2 作為函數進行調用46
3.3.3 作為方法進行調用47
3.3.4 作為構造器進行調用49
3.3.5 使用apply()和call()方法進行調用52
3.4 總結56
第4章 揮舞函數57
4.1 匿名函數57
4.2 遞歸59
4.2.1 普通命名函數中的
遞歸60
4.2.2 方法中的遞歸61
4.2.3 引用的丟失問題62
4.2.4 內聯命名函數64
4.2.5 callee屬性66
4.3 將函數視為對象67
4.3.1 函數存儲67
4.3.2 自記憶函數69
4.3.3 偽造數組方法71
4.4 可變長度的參數列表73
4.4.1 使用apply()支持可變
參數73
4.4.2 函數重載74
4.5 函數判斷82
4.6 總結83
第5章 閉包85
5.1 閉包是如何工作的86
5.2 使用閉包90
5.2.1 私有變量90
5.2.2 回調(Callback)與
計時器(timer)92
5.3 綁定函數上下文95
5.4 偏應用函數98
5.5 函數重載101
5.5.1 緩存記憶101
5.5.2 函數包裝104
5.6 即時函數106
5.6.1 臨時作用域和私有
變量107
5.6.2 循環111
5.6.3 類庫包裝112
5.7 總結113
第6章 原型與面向對象115
6.1 實例化和原型116
6.1.1 對象實例化116
6.1.2 通過構造器判斷對象
類型123
6.1.3 繼承與原型鏈124
6.1.4 HTML DOM原型128
6.2 疑難陷阱130
6.2.1 擴展對象130
6.2.2 擴展數字132
6.2.3 子類化原生對象133
6.2.4 實例化問題134
6.3 編寫類風格的代碼138
6.3.1 檢測函數是否可
序列化141
6.3.2 子類的實例化142
6.3.3 保留父級方法142
6.4 總結144
第7章 正則表達式147
7.1 為什么正則表達式
很牛148
7.2 正則表達式進階149
7.2.1 正則表達式解釋149
7.2.2 術語與操作符150
7.3 編譯正則表達式154
7.4 捕獲匹配的片段156
7.4.1 執行簡單的捕獲157
7.4.2 用全局表達式進行
匹配158
7.4.3 捕獲的引用159
7.4.4 沒有捕獲的分組160
7.5 利用函數進行替換161
7.6 利用正則表達式解決常見
問題164
7.6.1 修剪字符串164
7.6.2 匹配換行符166
7.6.3 Unicode166
7.6.4 轉義字符167
7.7 總結168
第8章 馴服線程和定時器169
8.1 定時器和線程是如何
工作的170
8.1.1 設置和清除定時器170
8.1.2 執行線程中的定時器
執行170
8.1.3 Timeout與Interval之間的區別172
8.2 定時器延遲的小化及其
性173
8.3 處理昂貴的計算
過程176
8.4 中央定時器控制179
8.5 異步測試182
8.6 總結183
第三部分 忍者訓練
第9章 忍者點金術:運行時代碼
求值187
9.1 代碼求值機制187
9.1.1 用eval()方法進行
求值188
9.1.2 用函數構造器進行
求值191
9.1.3 用定時器進行求值191
9.1.4 全局作用域內的求值
操作192
9.1.5 安全的代碼求值194
9.2 函數反編譯195
9.3 代碼求值實戰198
9.3.1 JSON轉化198
9.3.2 導入有命名空間的
代碼199
9.3.3 JavaScript壓縮和混淆200
9.3.4 動態重寫代碼202
9.3.5 面向切面的腳本標簽202
9.3.6 元語言和領域特定
語言204
9.4 總結207
第10章 With語句209
10.1 with是怎么回事?210
10.1.1 在with作用域內引用
屬性210
10.1.2 在with作用域內進行
賦值211
10.1.3 性能方面的注意
事項213
10.2 真實示例215
10.3 導入有命名空間的
代碼217
10.4 測試217
10.5 使用with進行
模板化218
10.6 總結220
第11章 開發跨瀏覽器
策略223
11.1 選擇要支持的
瀏覽器223
11.2 五大開發關注點225
11.2.1 瀏覽器Bug和瀏覽器
差異226
11.2.2 瀏覽器bug修復226
11.2.3 與外部代碼(標記)一起
共存228
11.2.4 缺失的功能232
11.2.5 回歸233
11.3 實現策略235
11.3.1 安全的跨瀏覽器
修復235
11.3.2 對象檢測236
11.3.3 特征仿真238
11.3.4 不可檢測的瀏覽器
問題241
11.4 減少假設243
11.5 總結244
第12章 洞悉特性、屬性和
樣式245
12.1 DOM特性和DOM
屬性246
12.1.1 跨瀏覽器命名248
12.1.2 命名限制248
12.1.3 XML與HTML之間的
差異249
12.1.4 自定義特性的行為250
12.1.5 性能注事事項250
12.2 跨瀏覽器的attribute
問題254
12.2.1 DOM中的id/name
膨脹254
12.2.2 URL規范化256
12.2.3 style特性257
12.2.4 type特性257
12.2.5 tab index問題258
12.2.6 節點名稱259
12.3 令人頭疼的樣式
特性259
12.3.1 樣式在何處?260
12.3.2 樣式屬性命名262
12.3.3 float樣式屬性263
12.3.4 像素值的轉換過程263
12.3.5 測量元素的高度和
寬度264
12.3.6 通過opacity看
透明度268
12.3.7 顏色屬性270
12.4 獲取計算樣式273
12.5 總結276
第四部分 火影訓練
第13章 不老事件281
13.1 綁定和解綁事件處理
程序282
13.2 Event對象286
13.3 處理程序的管理289
13.3.1 集中存儲相關信息289
13.3.2 管理事件處理程序292
13.4 事件觸發300
13.4.1 自定義事件302
13.5 冒泡與委托306
13.5.1 將事件委托給祖先
元素307
13.5.2 修復瀏覽器的不足307
13.6 文檔就緒事件(document
ready)316
13.7 總結318
第14章 DOM操作321
14.1 向DOM中注入
HTML322
14.1.1 將HTML轉換成
DOM323
14.1.2 將DOM插入到
文檔中326
14.1.3 腳本執行328
14.2 克隆元素330
14.3 刪除元素331
14.4 文本內容
我們不能總是向軟件發起正面攻擊。有時候要從側面或后面偷襲。我們需要掌握工具的“軍火庫”并了解每一個絕密技巧。這就要求我們必須要成為一名忍者。
本書帶領讀者走上JavaScript啟蒙之路。它從關鍵概念開始講起,比如函數、對象和閉包之間的關系,從大師的角度來一一解析。本書為你提供對日常所使用技術的新見解,并探索了不為人知的特性和功能,幫助讀者從學徒成長為忍者。閱讀完本書以后,你就
“本書出自兩位忍者之手,介紹了編寫有效跨瀏覽器JavaScript的藝術。”
——Glenn Stokol,Oracle公司
“本書符合jQuery的座右銘,‘更少代碼,更多功能’。”
——Andre Roberge,圣安妮大學
“本書介紹了有趣且原創的技術。”
——Scott Sauyet,Four Winds Software
“讀完這本書,你就不會再盲目地插入代碼片段,并驚嘆于它是如何工作的了——你會明白它的工作原理。”
——Joe Litton,JoeLitton.net協作軟件開發者
“本書將助你把JavaScript水平提升到大師級別。”
——Christopher Haupt,Greenstack.com
比想象中要厚
總體感覺不錯
好書,值得買!
還可以吧。
質量很好,當當活動給力,送貨也特別快
很喜歡當當的書,送貨快,保存好
我看過的最最好的一本js書籍,沒有之一
在當當買書,專業!
商品不錯,個人覺得比較滿意,物流也給力,好評
紙質質量不錯,書本內容瞄了幾眼,感覺內容還不錯
稍微有點折痕,無傷大雅
manning系列,繼續支持
很不錯很優惠當當很給力啊
適合有一定基礎,想要有點提高的人。
蹭積分專用評論
書不錯,包裝不咋地啊
不錯,對于提升javascript實力有很大的幫助,但是感覺像盜版的書
感覺之前看過的兩章原著和翻譯的意思差不多
翻譯的一般,但是都買這本書了應該都能理解原作者意思
學長推薦的 謝謝前人的努力和付出給我們制造更好的學習環境
超實用,不愧是jQuery作者參與編寫的書
一本見解獨到的開發手冊,對提高水平很有幫助
如果英文閱讀能力可以最好別買,書的內容很不錯, 但是翻譯和排版都非常糟糕. 哦應該是非常非常非常糟糕.
JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPOT忍者秘籍覽器命名 命名限制 與之間的差異 自定義H特性的行為 性能注事事E項 跨瀏覽器4O的問R題 中的膨脹 規范化10 JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍4功能,幫助讀者從學徒成長為忍者。閱讀完本書以后,你就本書出自兩位忍者之手,介紹了T編寫有效跨Q瀏覽器2的工8作原理X?!?,協作軟件開發者本書6將助你把水平提升到大師級別?!?,瀏覽器差異 瀏覽器修復 與外部代碼(標記)一起共存 缺失的功能 回歸 實現策略 安全的6跨瀏覽器修復 使M用和方法進行調用 總結 第章揮舞函數 匿名函數 遞歸 普通命名函數中的遞歸 方法中的遞歸 引用的很多,但沒有任何一本書對語言的重要部分(函數、閉包和原型)進行深入、全面的介紹,也沒有任何一本書講述對象檢測 特征仿真A 不可檢測的瀏覽器問題 減少假設 總結 第章洞悉特性、屬性和樣式 特性和屬性 跨瀏JAVASCRIPT忍者秘籍 使用支持可變參數 函6數重載 函數判斷 總結 第章閉包 閉包是如何工作的
JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPT忍者秘籍JAVASCRIPTM忍者秘籍丟失問題 內聯命名函數 屬性 將函數視為對象 函B數存儲 自記憶函數 X偽造數4組方法 可變長度的參數4列表跨瀏覽器代碼的編寫。本書是庫創G始人編寫的一本深入剖析語言的書??梢蚤_始編寫更加出彩的應6用程序了,甚至推薦語本書內B容極具深度,技術含量高,作者2是庫的創造者,在領域享有盛譽。語言非常重要,相關的技術圖10書6也 使用支6持可變參數 函數重載 函數判斷 總結 第章閉包U O閉包是如何工作的 使用閉包8 私有變量 回調(也可以編寫自己的代碼庫和框架。本書包括以G下內容:函2數、對象、閉包、正則表達式等;正確的角度探視應用程特性 特性 問題 節點名稱 令人頭疼的樣式特性 樣式在何處? 樣式屬性命名 樣式屬性 像素值的轉換過)與計時器() 綁定函數上下文 偏應用函數 函數重載 緩存記憶 函數包裝 即時函數 臨時作用域和私有序和庫;現代設計;處理跨瀏覽器開發的復雜性。簡介【作者】是公認的專家以及庫的創造者。是一名開發人員。序和庫;現代設計;處理跨瀏覽器開發的復
里面有很多JavaScript方面的黑科技、技巧,不錯,喜歡。
JavaScript進階,看完基礎看這個還是不錯的
是看了一部分之后才來評價的,書的內容非常不錯!值得購買,另外紙的質量也是很好的。對js的函數,原型,閉包,代碼求值,正則,線程定時器等多個方面講解很清晰!適合對自己有這方面要求的人。