依照百度前端規範對項目裡部分代碼的重構

來源:互聯網
上載者:User

1.不要用document.write輸出js檔案(對應百度前端規範14.2節)

重構前

在管理學院項目裡面,我們為了方便JS組件的調用,並且在換組件的時候無需修改相應的html或模板.,對JS組件進行了模組劃分,寫了一個輸出JS的工具JS,如下

 

百度前端規範

切勿以document.write輸出靜態js引用的方式上線!在IE下,document.write無法保證指令碼載入的時序性。

 

重構後

在留學生教務系統裡面,我們沿用了EEP的輸出JS的工具類:JQueryLoader,保證了js輸出的時序性,管理了js直接的依賴關係,並且也有了查重的功能。

 

 

2.全域變數衝突(對應百度前端規範15.1節)

重構前

在我們所寫的js頁面裡,很多都是直接寫本頁的js代碼

 

 

百度前端規範

由於環境的未知性,所有暴露的全域變數都可能產生危險.我們應該使用function隔離範圍.

 

重構後

利用閉包和立即函數,包裹自己寫的JS,避免命名衝突

 

3.行字元限制(對應百度前端規範1.3節)

重構前

一般我們是這樣寫邏輯判斷語句的

 

 

百度前端規範

每行的字元數建議不超過100個字元。

過長的程式行應在適當的地方斷行,並保持斷行後的代碼整齊。斷行不要破壞運算式本身的意義。

 

重構後

 

 

4.字串拼接(對應百度前端規範9.1節)

重構前

在實驗室開發項目時,一般是這樣拼接字串的:

 

 

百度前端規範

字串拼接,應使用數組作為StringBuffer儲存字串片段,使用時調用join方法。避免使用+或+=的方式拼接較長的字串,每個字串都會使用一個小的記憶體片段,過多的記憶體片段會影響效能。絕大部分現代瀏覽器都對+=的字串拼接進行了最佳化,但IE6的使用率依然很高

 

字串拼接:更好的拼接方式,Array,使用臨時變數儲存數組長度

 

var str = [], strLen = 0;

    for (var i = 0, len = list.length; i < len; i++) {

        str[strLen++] = '<div>' + list[i] + '</div>';

    }

    dom.innerHTML = str.join('');

 

重構後

 

5.倒序遍曆(對應百度前端規範10.3.2節)

重構前

在實驗室項目中我們一般是這樣遍曆數組的:

 

 

百度前端規範

當遍曆的順序無關時,建議使用倒序遍曆。尋找匹配項並刪除時,應使用倒序遍曆。

 

重構後

 

6.清Null 字元串(對應百度前端規範10.2.2節)重構前

之前我們一般認為清Null 字元串是這樣的:

 

 

百度前端規範

我們可以設定數組的length為0來清除數組的所有項。

 

重構後

賦值為一個空數組以達到清空原數組 這裡其實並不能說是嚴格意義的清空數組,只是將ary重新賦值為空白數組,之前的數組如果沒有引用在指向它將等待記憶體回收.

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.