做者介紹:前端
成林,資深Web前端工程師,從事Web前端工做多年,精通CSS、HTML、JavaScript、jQuery和Ajax等Web前端技術,在實踐中積累了大量的經驗。推崇Web技術標準,曾經在多所高等院校和一些線下技術沙龍主講Web標準和規範相關的課程,曾經還參與過W3C組織的標準化文檔的中文編譯工做。近幾年來,集中精力研究和實踐CSS3和
HTML 5前沿技術,在國內是該領域的先驅者之一。正則表達式
其中書的目錄分類爲如下幾部分:編程
第1章 JavaScript語言基礎跨域
第2章 字符串、正則表達式和數組數組
第3章 函數式編程瀏覽器
第4章 面向對象編程安全
第5章 DOM編程服務器
第6章 客戶端編程前端工程師
第7章 數據交互和存儲閉包
第8章 JavaScript引擎與兼容性
第9章 JavaScript編程規範和應用
具體目錄
第1章 JavaScript語言基礎建議1:警戒Unicode亂碼建議2:正確辨析JavaScript句法中的詞、句和段建議3:減小全局變量污染建議4:注意JavaScript數據類型的特殊性 建議5:防止JavaScript自動插入分號建議6:正確處理JavaScript特殊值建議7:當心保留字的誤用建議8:謹慎使用運算符建議9:不要信任hasOwnProperty建議10:謹記對象非空特性建議11:慎重使用僞數組建議12:避免使用with建議13:養成優化表達式的思惟方式建議14:不要濫用eval建議15:避免使用continue建議16:防止switch貫穿建議17:塊標誌並不是多餘建議18:比較function語句和function表達式建議19:不要使用類型構造器建議20:不要使用new建議21:推薦提升循環性能的策略建議22:少用函數迭代建議23:推薦提升條件性能的策略建議24:優化if邏輯建議25:恰當選用if和switch 建議26:當心if嵌套的思惟陷阱建議27:當心if隱藏的Bug建議28:使用查表法提升條件檢測的性能建議29:準確使用循環體建議30:使用遞歸模式建議31:使用迭代建議32:使用製表建議33:優化循環結構第2章 字符串、正則表達式和數組建議34:字符串是非值操做建議35:獲取字節長度建議36:警戒字符串鏈接操做建議37:推薦使用replace建議38:正確認識正則表達式工做機制 建議39:正確理解正則表達式回溯建議40:正確使用正則表達式分組建議41:正確使用正則表達式引用建議42:用好正則表達式靜態值建議43:使用exec加強正則表達式功能建議44:正確使用原子組建議45:警戒嵌套量詞和回溯失控建議46:提升正則表達式執行效率建議47:避免使用正則表達式的場景建議48:慎用正則表達式修剪字符串建議49:比較數組與對象同源特性建議50:正確檢測數組類型建議51:理解數組長度的有限性和無限性建議52:建議使用splice刪除數組建議53:當心使用數組維度建議54:加強數組排序的sort功能建議55:不要拘泥於數字下標建議56:使用arguments模擬重載第3章 函數式編程建議57:禁用Function構造函數創建58:靈活使用Arguments建議59:推薦動態調用函數建議60:比較函數調用模式建議61:使用閉包跨域開發建議62:在循環體和異步回調中慎重使用閉包建議63:比較函數調用和引用本質建議64:建議經過Function擴展類型建議65:比較函數的惰性求值與非惰性求值建議66:使用函數實現歷史記錄建議67:套用函數建議68:推薦使用鏈式語法建議69:使用模塊化規避缺陷建議70:惰性實例化建議71:推薦分支函數建議72:惰性載入函數建議73:函數綁定有價值建議74:使用高階函數建議75:函數柯里化建議76:要重視函數節流建議77:推薦做用域安全的構造函數建議78:正確理解執行上下文和做用域鏈第4章 面向對象編程建議79:參照Object構造體系分析prototype機制建議80:合理使用原型建議81:原型域鏈不是做用域鏈建議82:不要直接檢索對象屬性值建議83:使用原型委託建議84:防止原型反射建議85:謹慎處理對象的Scope 建議86:使用面向對象模擬繼承建議87:分辨this和function調用關係建議88:this是動態指針,不是靜態引用建議89:正確應用this建議90:預防this誤用的策略建議91:推薦使用構造函數原型模式定義類建議92:不建議使用原型繼承建議93:推薦使用類繼承建議94:建議使用封裝類繼承建議95:慎重使用實例繼承建議96:避免使用複製繼承建議97:推薦使用混合繼承建議98:比較使用JavaScript多態、重載和覆蓋建議99:建議主動封裝類建議100:謹慎使用類的靜態成員建議101:比較類的構造和析構特性建議102:使用享元類建議103:使用摻元類建議104:謹慎使用僞類建議105:比較單例的兩種模式第5章 DOM編程建議106:建議先檢測瀏覽器對DOM支持程度 建議107:應理清HTML DOM加載流程 建議108:謹慎訪問DOM 建議109:比較innerHTML與標準DOM方法建議110:警戒文檔遍歷中的空格Bug建議111:克隆節點比建立節點更好建議112:謹慎使用HTML集合建議113:用局部變量訪問集合元素建議114:使用nextSibling抓取DOM建議115:實現DOM原型繼承機制建議116:推薦使用CSS選擇器建議117:減小DOM重繪和重排版次數建議118:使用DOM樹結構託管事件建議119:使用定時器優化UI 隊列建議120:使用定時器分解任務建議121:使用定時器限時運行代碼建議122:推薦網頁工人線程第6章 客戶端編程建議123:比較IE和W3C事件流建議124:設計鼠標拖放方案建議125:設計鼠標指針定位方案建議126:當心在元素內定位鼠標指針建議127:妥善使用DOMContentLoaded事件建議128:推薦使用beforeunload事件建議129:自定義事件建議130:從CSS樣式表中抽取元素尺寸建議131:慎重使用offsetWidth和offsetHeight建議132:正確計算區域大小建議133:謹慎計算滾動區域大小建議134:避免計算窗口大小建議135:正確獲取絕對位置建議136:正確獲取相對位置第7章 數據交互和存儲建議137:使用隱藏框架實現異步通訊建議138:使用iframe實現異步通訊建議139:使用script實現異步通訊建議140:正確理解JSONP異步通訊協議建議141:比較經常使用的服務器請求方法建議142:比較經常使用的服務器發送數據方法建議143:避免使用XML格式進行通訊建議144:推薦使用JSON格式進行通訊建議145:慎重使用HTML格式進行通訊建議146:使用自定義格式進行通訊建議147:Ajax性能嚮導建議148:使用本地存儲數據建議149:警戒基於DOM的跨域侵入建議150:優化Ajax開發的最佳實踐建議151:數據存儲要考慮訪問速度建議152:使用局部變量存儲數據建議153:警戒人爲改變做用域鏈建議154:慎重使用動態做用域建議155:當心閉包致使內存泄漏建議156:靈活使用Cookie存儲長信息建議157:推薦封裝Cookie應用接口第8章 JavaScript引擎與兼容性建議158:比較主流瀏覽器內核解析建議159:推薦根據瀏覽器特性進行檢測建議160:關注各類引擎對ECMAScript v3的分歧建議161:關注各類引擎對ECMAScript v3的補充建議162:關注各類引擎對Event解析的分歧建議163:關注各類引擎對DOM解析的分歧建議164:關注各類引擎對CSS渲染的分歧第9章 JavaScript編程規範和應用建議165:不要混淆JavaScript與瀏覽器建議166:掌握JavaScript預編譯過程建議167:準確分析JavaScript執行順序建議168:避免二次評估建議169:建議使用直接量建議170:不要讓JavaScript引擎重複工做建議171:使用位操做符執行邏輯運算建議172:推薦使用原生方法建議173:編寫無阻塞JavaScript腳本建議174:使腳本延遲執行建議175:使用XHR腳本注入建議176:推薦最優化非阻塞模式建議177:避免深陷做用域訪問建議178:推薦的JavaScript性能調優建議179:減小DOM操做中的Repaint和Reflow建議180:提升DOM訪問效率建議181:使用 setTimeout實現工做線程建議182:使用 Web Worker建議183:避免內存泄漏建議184:使用SVG建立動態圖形建議185:減小對象成員訪問建議186:推薦100 ms用戶體驗建議187:使用接口解決JavaScript文件衝突建議188:避免JavaScript與CSS衝突