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