1.為了避免HTML和JavaScript的緊密耦合(JavaSript中包含HTML),應避免在JavaScript中創建大量的HTML。主要方法有兩種:一是避免直接插入HTML標記,可以先在頁面中直接包含并隱藏標記,然后使用JavaScript控制它的顯示/隱藏。二是進行AJAX請求并獲得更多要顯示的HTML。
2.避免在事件處理程序中包含未封裝的應用邏輯,應到使用外部函數對應用邏輯進行封裝。使用此種解耦方法時,勿將event對象直接傳給其他方法,而應只傳來自event對象中所需的數據。
3.永遠不要修改不是有你創建的對象。這包括:
(1)不要為實例或原型添加/重定義方法。
(2)不要為實例或原型添加/修改屬性。
4.避免與null進行比較,嘗試使用以下技術替換:
(1)如果值應為一個引用類型,使用instanceof操作符檢查其構造函數
(2)如果值應為一個基本類型,使用typeof操作符檢查其類型
(3)如果希望對象包含某個特定的方法名,則是用typeof操作符確保指定名字的方法存在于對象上
5.使用常量,將數據從應用邏輯中分離出來的思想,可以在不冒引入錯誤的風險的同時,就可以改變數據。
要注意的值的類型如下所示:
(1)重復值
(2)用戶界面字符串
(3)URLs
(4)任意可能會更改的值--每當你在用到字面量值時,你都要問一下自己這個值未來是否會變化。
6.最小化訪問HTMLCollection的次數可以極大地改善腳本的性能。發生以下情況時會返回HTMLCollection對象:
(1)進行了對getElementsByTagName()的調用
(2)獲取了元素的childNodes屬性
(3)過去了元素的attributes屬性
(4)訪問了特殊的集合,入document.forms、document.images等。