《編寫高品質代碼:改善JavaScript程式的188個建議》
本資訊
作者: 成林
出版社:機械工業出版社
ISBN:9787111399056
上架時間:2012-11-6
出版日期:2013 年1月
開本:16開
頁碼:1
版次:1-1
所屬分類: 電腦 > 軟體與程式設計 > 網路編程 > javascript
更多關於 》》》《編寫高品質代碼:改善JavaScript程式的188個建議》
內容簡介
書籍
電腦書籍
《編寫高品質代碼:改善javascript程式的188個建議》是web前端工程師進階修鍊的必讀之作,將為你通往“javascript技術殿堂”指點迷津!內容全部由編寫高品質的javascript代碼的最佳實務組成,從基本文法、應用架構、工具架構、編碼風格、編程思想等5大方面對web前端工程師遇到的疑難問題給出了經驗性的解決方案,為web前端工程師如何編寫更高品質的javascript代碼提供了188條極為寶貴的建議。對於每一個問題,不僅以建議的方式給出了被實踐證明為十分優秀的解決方案,而且還給出了經常被誤用或被錯誤理解的不好的解決方案,從正反兩個方面進行了分析和對比,猶如醍醐灌頂,讓人豁然開朗。
《編寫高品質代碼:改善javascript程式的188個建議》針對每個問題所設計的應用情境都非常典型,給出的建議也都與實踐緊密結合。書中的每一條建議都可能在你的下一行代碼、下一個應用或下一個項目中被用到,建議你將此書放置在手邊,隨時查閱,一定能使你的學習和開發工作事半功倍。
目錄
《編寫高品質代碼:改善javascript程式的188個建議》
前 言
第1章 javascript語言基礎 / 1
建議1:警惕unicode亂碼 / 1
建議2:正確辨析javascript句法中的詞、句和段 / 2
建議3:減少全域變數汙染 / 4
建議4:注意javascript資料類型的特殊性 / 6
建議5:防止javascript自動插入分號 / 11
建議6:正確處理javascript特殊值 / 12
建議7:小心保留字的誤用 / 15
建議8:謹慎使用運算子 / 16
建議9:不要信任hasownproperty / 20
建議10:謹記對象非空特性 / 20
建議11:謹慎使用偽數組 / 21
建議12:避免使用with / 22
建議13:養成最佳化運算式的思維方式 / 23
建議14:不要濫用eval / 26
建議15:避免使用continue / 27
建議16:防止switch貫穿 / 28
建議17:塊標誌並非多餘 / 29
建議18:比較function語句和function運算式 / 29
建議19:不要使用類型構造器 / 30
建議20:不要使用new / 31
建議21:推薦提高迴圈效能的策略 / 31
建議22:少用函數迭代 / 35
建議23:推薦提高條件效能的策略 / 35
建議24:最佳化if邏輯 / 36
建議25:恰當選用if和switch / 39
建議26:小心if嵌套的思維陷阱 / 40
建議27:小心if隱藏的bug / 42
建議28:使用查表法提高條件檢測的效能 / 43
建議29:準確使用迴圈體 / 44
建議30:使用遞迴模式 / 48
建議31:使用迭代 / 49
建議32:使用製表 / 50
建議33:最佳化迴圈結構 / 51
第2章 字串、Regex和數組 / 53
建議34:字串是非值操作 / 53
建議35:擷取位元組長度 / 55
建議36:警惕字串串連操作 / 56
建議37:推薦使用replace / 59
建議38:正確認識Regex工作機制 / 62
建議39:正確理解Regex回溯 / 63
建議40:正確使用Regex分組 / 65
建議41:正確使用Regex引用 / 68
建議42:用好Regex靜態值 / 69
建議43:使用exec增強Regex功能 / 71
建議44:正確使用原子組 / 72
建議45:警惕嵌套量詞和回溯失控 / 73
建議46:提高Regex執行效率 / 74
建議47:避免使用Regex的情境 / 76
建議48:慎用Regex修剪字串 / 77
建議49:比較數組與對象同源特性 / 80
建議50:正確檢測數群組類型 / 81
建議51:理解數組長度的有限性和無限性 / 82
建議52:建議使用splice刪除數組 / 83
建議53:小心使用數組維度 / 84
建議54:增強數組排序的sort功能 / 85
建議55:不要拘泥於數字下標 / 87
建議56:使用arguments類比重載 / 89
第3章 函數式編程 / 91
建議57:禁用function建構函式 / 91
建立58:靈活使用arguments / 94
建議59:推薦動態調用函數 / 96
建議60:比較函數調用模式 / 99
建議61:使用閉包跨域開發 / 101
建議62:在迴圈體和非同步回調中謹慎使用閉包 / 104
建議63:比較函數調用和引用本質 / 106
建議64:建議通過function擴充類型 / 108
建議65:比較函數的惰性求值與非惰性求值 / 109
建議66:使用函數實現記錄 / 111
建議67:套用函數 / 113
建議68:推薦使用鏈式文法 / 114
建議69:使用模組化規避缺陷 / 115
建議70:惰性執行個體化 / 117
建議71:推薦分支函數 / 118
建議72:惰性載入函數 / 119
建議73:函數綁定有價值 / 121
建議74:使用高階函數 / 123
建議75:函數柯裡化 / 125
建議76:要重視函數節流 / 126
建議77:推薦範圍安全的建構函式 / 127
建議78:正確理解執行內容和範圍鏈 / 129
第4章 物件導向編程 / 133
建議79:參照object構造體系分析prototype機制 / 133
建議80:合理使用原型 / 137
建議81:原型域鏈不是範圍鏈 / 140
建議82:不要直接檢索對象屬性值 / 142
建議83:使用原型委託 / 143
建議84:防止原型反射 / 144
建議85:謹慎處理對象的scope / 145
建議86:使用物件導向類比繼承 / 149
建議87:分辨this和function調用關係 / 152
建議88:this是動態指標,不是靜態引用 / 153
建議89:正確應用this / 157
建議90:預防this誤用的策略 / 161
建議91:推薦使用建構函式原型模式定義類 / 164
建議92:不建議使用原型繼承 / 166
建議93:推薦使用類繼承 / 168
建議94:建議使用封裝類繼承 / 171
建議95:謹慎使用執行個體繼承 / 172
建議96:避免使用複製繼承 / 174
建議97:推薦使用混合繼承 / 175
建議98:比較使用javascript多態、重載和覆蓋 / 176
建議99:建議主動封裝類 / 179
建議100:謹慎使用類的靜態成員 / 181
建議101:比較類的構造和析構特性 / 183
建議102:使用享元類 / 186
建議103:使用摻元類 / 188
建議104:謹慎使用偽類 / 190
建議105:比較單例的兩種模式 / 192
第5章 dom編程 / 195
建議106:建議先檢測瀏覽器對dom支援程度 / 195
建議107:應理清html dom載入流程 / 198
建議108:謹慎訪問dom / 200
建議109:比較innerhtml與標準dom方法 / 200
建議110:警惕文檔遍曆中的空格bug / 202
建議111:複製節點比建立節點更好 / 203
建議112:謹慎使用html集合 / 204
建議113:用局部變數訪問集合元素 / 206
建議114:使用nextsibling抓取dom / 207
建議115:實現dom原型繼承機制 / 207
建議116:推薦使用css選取器 / 210
建議117:減少dom重繪和重排版次數 / 211
建議118:使用dom樹結構託管事件 / 216
建議119:使用定時器最佳化ui 隊列 / 217
建議120:使用定時器分解任務 / 220
建議121:使用定時器限時運行代碼 / 221
建議122:推薦網頁工人線程 / 222
第6章 用戶端編程 / 226
建議123:比較ie和w3c事件流 / 226
建議124:設計滑鼠拖放方案 / 229
建議125:設計滑鼠指標定位方案 / 231
建議126:小心在元素內定位滑鼠指標 / 233
建議127:妥善使用domcontentloaded事件 / 234
建議128:推薦使用beforeunload事件 / 236
建議129:自訂事件 / 236
建議130:從css樣式表中抽取元素尺寸 / 238
建議131:謹慎使用offsetwidth和offsetheight / 241
建議132:正確計算地區大小 / 244
建議133:謹慎計算捲動區域大小 / 247
建議134:避免計算視窗大小 / 248
建議135:正確擷取絕對位置 / 249
建議136:正確擷取相對位置 / 251
第7章 資料互動和儲存 / 254
建議137:使用隱藏架構實現非同步通訊 / 254
建議138:使用iframe實現非同步通訊 / 257
建議139:使用script實現非同步通訊 / 259
建議140:正確理解jsonp非同步通訊協議 / 264
建議141:比較常用的伺服器要求方法 / 267
建議142:比較常用的伺服器發送資料方法 / 271
建議143:避免使用xml格式進行通訊 / 273
建議144:推薦使用json格式進行通訊 / 275
建議145:謹慎使用html格式進行通訊 / 278
建議146:使用自訂格式進行通訊 / 279
建議147:ajax效能嚮導 / 280
建議148:使用本機存放區資料 / 281
建議149:警惕基於dom的跨域侵入 / 283
建議150:最佳化ajax開發的最佳實務 / 286
建議151:資料存放區要考慮訪問速度 / 290
建議152:使用局部變數儲存資料 / 291
建議153:警惕人為改變範圍鏈 / 293
建議154:謹慎使用動態範圍 / 294
建議155:小心閉包導致記憶體流失 / 295
建議156:靈活使用cookie儲存長資訊 / 296
建議157:推薦封裝cookie應用介面 / 298
第8章 javascript引擎與相容性 / 300
建議158:比較主流瀏覽器核心解析 / 300
建議159:推薦根據瀏覽器特性進行檢測 / 302
建議160:關注各種引擎對ecmascript v3的分歧 / 305
建議161:關注各種引擎對ecmascript v3的補充 / 316
建議162:關注各種引擎對event解析的分歧 / 327
建議163:關注各種引擎對dom解析的分歧 / 330
建議164:關注各種引擎對css渲染的分歧 / 335
第9章 javascript編程規範和應用 / 339
建議165:不要混淆javascript與瀏覽器 / 339
建議166:掌握javascript先行編譯過程 / 340
建議167:準確分析javascript執行順序 / 344
建議168:避免二次評估 / 350
建議169:建議使用直接量 / 351
建議170:不要讓javascript引擎重複工作 / 351
建議171:使用位操作符執行邏輯運算 / 353
建議172:推薦使用原生方法 / 355
建議173:編寫無阻塞javascript指令碼 / 356
建議174:使指令碼順延強制 / 358
建議175:使用xhr指令碼注入 / 362
建議176:推薦最佳化非阻塞模式 / 362
建議177:避免深陷範圍訪問 / 363
建議178:推薦的javascript效能調優 / 365
建議179:減少dom操作中的repaint和reflow / 368
建議180:提高dom訪問效率 / 370
建議181:使用 settimeout實現背景工作執行緒 / 372
建議182:使用 web worker / 375
建議183:避免記憶體流失 / 377
建議184:使用svg建立動態圖形 / 380
建議185:減少對象成員訪問 / 385
建議186:推薦100 ms使用者體驗 / 388
建議187:使用介面解決javascript檔案衝突 / 390
建議188:避免javascript與css衝突 / 392
本圖書資訊來源:中國互動出版網