JavaScript的分層概念
為了使代碼更清晰,減少冗余,提高代碼重用率,和css分層一樣:
base層:最低端,給common層和page層提供接口的,兩個職責:1:不同瀏覽器之間js的差異提供統一接口;2:擴展js語言底層提供的接口。
common層:提供可復用的組件,和頁面內具體功能無關。common層的功能是給page層用的。
page層:最頂端,該層主要是完成各個頁面內的功能需求。
良好的編程習慣
命名空間和匿名函數的使用
避免JS沖突,避免全局變量泛濫,划分模塊。
生成命名空間是一個很常用的功能,可以將其封裝為一個函數。
var GLOBAL = {}; GLOBAL.namespace = function(str) { var arr = str.split("."), o=GLOBAL; for(var i = (arr[0]=="GLOBAL") ? 1 : 0; i<arr.length; i++){ o[arr[i]] = o[arr[i]] || {}; o = o[arr[i]]; } } //調用 GLOBAL.namespace("A.DOG"); GLOABL.A.DOG.name = "wangcai";
給程序一個入口
特別重要的一點,直接關系到代碼的可讀性。
CSS放在頭部,JS放在尾部
大家都知道,再啰嗦一遍,瀏覽器加載網頁,加載到JS時,由於腳本比較多,而html代碼還沒有加載,這是頁面會顯示空白,腳本阻塞了html的加載,等到毫不容易加載完成了,有時候會發現這些網頁元素沒有樣式,所以一個好的習慣是,CSS放在頁頭,JS放在頁尾(先加載css,再加載html,再加載js.) 這樣就能適時的將界面呈現給用戶,減少頁面空白的時間。
添加注釋
形成有規律的代碼注釋風格,對代碼的維護和修改有很大的幫助。
- 公共組件、插件注釋,需要在文件頭部加注釋
/**
* 文件用途說明
* 作者日期
* 制作日期
**/
- 大的模塊注釋方法
//========================
// 代碼用途
//========================
- 小注釋
//代碼說明
注釋獨占一行,不要再代碼后同一行內加注釋
編程適用技巧
- 保持彈性,適應變化
- 可復用性,避免產生副作用
- 通過傳參實現定制,用hash散列對象傳參
- 控制this關鍵字的指向
- 預留回調借口
- DRY原則,don’t repeat yourself,相同的代碼只寫一次,然后再多處引用,提高重用率,減少代碼量,提高代碼的可維護性。