《編寫高品質代碼:改善JavaScript程式的188個建議》學習小記(一)

來源:互聯網
上載者:User

標籤:自訂事件   ice   函數調用   靜態   通訊協定   範圍   抓取   隱藏   析構   

作者介紹:

成林,資深Web前端工程師,從事Web前端工作多年,精通CSS、HTML、JavaScript、jQuery和Ajax等Web前端技術,在實踐中積累了大量的經驗。推崇Web技術標準,曾經在多所高等院校和一些線下技術沙龍主講Web標準和規範相關的課程,曾經還參與過W3C組織的標準化文檔的中文編譯工作。近幾年來,集中精力研究和實踐CSS3和 
HTML 5前沿技術,在國內是該領域的先驅者之一。

其中書的目錄分類為以下幾部分:

第1章 JavaScript語言基礎

第2章 字串、Regex和數組

第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章 字串、Regex和數組
建議34:字串是非值操作
建議35:擷取位元組長度
建議36:警惕字串串連操作
建議37:推薦使用replace
建議38:正確認識Regex工作機制 
建議39:正確理解Regex回溯
建議40:正確使用Regex分組
建議41:正確使用Regex引用
建議42:用好Regex靜態值
建議43:使用exec增強Regex功能
建議44:正確使用原子組
建議45:警惕嵌套量詞和回溯失控
建議46:提高Regex執行效率
建議47:避免使用Regex的情境
建議48:慎用Regex修剪字串
建議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衝突

《編寫高品質代碼:改善JavaScript程式的188個建議》學習小記(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.