移動端代碼規範小結(一)

來源:互聯網
上載者:User

標籤:

 

1、js中use strict的範圍範圍只在當前指令碼有效:比如1.js裡面調用2.js的方法,1.js裡面聲明"use strict",而2.js裡面沒有聲明,則該調用為正常模式調用,並非strict 模式;

2、location.replace與location.href的區別在於不會破壞之前的頁面回退功能;

3、由於瀏覽器對於跨域的限制,js不能本地儲存跨域的圖片(拿不到圖片的base64);

4、設定和擷取disable, checked, selected等屬性時,請使用推薦的prop方法來替代attr方法(備忘:有些瀏覽器上通過attr(“checked”, “checked”)無效);

5、對於each函數,return true同等於continue, return false同等於break;

6、對於頁面的命名裡不應該包含大寫字母,eg. isNotAllowed.html(備忘:有些瀏覽器不能識別大寫字母);

7、data方法在jQuery裡面和zepto裡面實現形式是不一樣。

  jQuery裡面的data方法儲存的資料是jQuery自己儲存的。jQ也會擷取一次data-*的資料,但擷取之後後續的處理全在jQ的對象裡面了,不會在HTML體現。

  zepto裡面data方法儲存的資料會同時寫到元素自身的data-*上面的。擷取以data-*開頭的屬性值時,請使用$(...).data(*)函數。

  原生JS擷取的時候是屬性名稱是去掉data-,然後變成小駝峰形式,即前面的值應該用dom.dataset.someValue來擷取。反過來也一樣,即通過dom.dataset.someName設定

的值,在HTML上會表示成data-some-name="xx"

  另外,data-*的命名規則按照規範,應該是全小寫,詞語間劃分使用"-",比如data-some-value=""。

8、 在for…in…迴圈內,最好用hasOwnProperty函數來判斷屬性是否為真正屬性,以免處理了無效值;

9、假如某個dom節點同個函數中被多次反覆使用,可以手動把此值緩衝,避免多次尋找dom樹。例如var a = $(body);

10、在使用Date對象產生執行個體的時候,要注意使用標準寫法,不然某些瀏覽器會報錯。 不要習慣使用 new Date("YYYY-MM-DD HH:mm:SS"),因為這個格式並不是標準的格式,

但是當前webkit是支援的。長個心眼,如果以後遇到其他瀏覽器報錯或者是webkit放棄了這個支援的時候,方便尋找原因;

11、由於JS沒有塊級範圍,因此如果在if塊和else塊裡面都用到var i作為計數器,則可能報重複定義的錯誤;

12、關於變數聲明,Var a=b=0;相當於 var a; a= b; b = 0;b變成了全域變數;

13、for(var key in str) 中變數key在for裡面的聲明和在for外面的聲明是一樣的,因為變數聲明會被提前到當前範圍的最前面;

 

移動端代碼規範小結(一)

聯繫我們

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