精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

網易郵箱前端JavaScript編碼規范

開發 前端
javascript在設計之初就只是用來為HTML添加動態效果的。由于他動態,弱類型等特性,以及不同瀏覽器的兼容性問題,造成了開發成本要比java等語言要高很多。

在多年開發郵箱webmail過程中,網易郵箱前端團隊積累了不少心得體會,我們開發了很多基礎js庫,實現了大量前端效果組件,開發了成熟的opoa框架以及api組件,在此向大家做一些分享。今天想先和大家聊聊javascript的編碼規范。

總所周知,javascript是一種語法極其靈活的語言。javascript在設計之初就只是用來為HTML添加動態效果的。由于他動態,弱類型等特性,以及不同瀏覽器的兼容性問題,造成了開發成本要比java等語言要高很多。正因為它太靈活,我們制定了適用于網易郵箱的javascript編碼規范,盡可能多的降低由于語法靈活造成的問題。以下將具體介紹:

1. 變量命名規范

變量名包括全局變量,局部變量,類變量,函數參數等等,他們都屬于這一類。

基本規范

變量命名都以類型前綴+有意義的單詞組成,單詞首字母都需要大寫。例如:sUserName,nCount。

前綴規范

每個局部變量都需要有一個類型前綴,按照類型可以分為:

s:表示字符串。例如:sName,sHtml;

n:表示數字。例如:nPage,nTotal;

b:表示邏輯。例如:bChecked,bHasLogin;

a:表示數組。例如:aList,aGroup;

r:表示正則表達式。例如:rDomain,rEmail;

f:表示函數。例如:fGetHtml,fInit;

o:表示以上未涉及到的其他對象,例如:oButton,oDate;

例外情況:

1:作用域不大臨時變量可以簡寫,比如:str,num,bol,obj,fun,arr。

2:循環變量可以簡寫,比如:i,j,k等。

為什么需要這樣強制定義變量前綴?正式因為javascript是弱語言造成的。在定義大量變量的時候,我們需要很明確的知道當前變量是什么屬性,如果只通過普通單詞,是很難區分的。

例如:

  1. var group = [];   
  2. group.name = 'myGroup';   
  3. /****   
  4. some code   
  5. ***/ 
  6. //這時候你還能一眼就看出來group是什么嗎? 

又例如:

  1. var checked = false;   
  2. var check = function(){   
  3.     return true;   
  4. }   
  5. /**   
  6. some code   
  7. **/ 
  8. if(check){//可能將checked寫成check,由于不能很快速的發現check是函數,造成邏輯錯誤   
  9.     //do some thing   

如果我們寫成:

  1. var bChecked = false;   
  2. var fCheck = function(){   
  3.     return true;   
  4. }   
  5. /**   
  6. some code   
  7. **/ 
  8. if(bChecked){   
  9.     // do some thing   
  10. }   
  11. if(fCheck()){   
  12.     // do other thing   

就清楚很多了。

全局變量以及常量規范

網易郵箱前端是基于“類”的概念來來開發javascript的(稍后會專門介紹),每個類定義都是在一個閉包函數中,除了在window下有類的定義而外,只允許有兩種變量定義在全局,那就是全局變量和常量。

全局變量使用g作為前綴,定義在window下。例如gUserName,gLoginTime。

某些作為不允許修改值的變量認為是常量,全部字母都大寫。例如:COPYRIGHT,PI。常量可以存在于函數中,也可以存在于全局。

看個例子就 很容易明白為什么要這樣定義了:

  1. var userName = "dongua";   
  2. function checkName(userName){   
  3.     //存在函數參數userName以及全局變量userName,如果要比較兩個值是否相等,必需寫為   
  4.     return window.userName == userName   

如果使用了全局變量的前綴,就十分清晰了。

2. 函數命名規范

統一使用動詞或者動詞[+名詞]形式,例如:fGetVersion(),fSubmitForm(),fInit();涉及返回邏輯值的函數可以使用is,has等表示邏輯的詞語代替動詞。

如果有內部函數,使用__f+動詞[+名詞]形式,內部函數必需在函數***定義。例如:

  1. function fGetNumber(nTotal){   
  2.     if(nTotal<100){   
  3.   nTotal = 100;   
  4.    }   
  5.  return __fAdd(nTotal);     
  6.     
  7.  function __fAdd(nNumber){   
  8.   nNumber++;   
  9.   return nNumber;   
  10.  }   
  11. }   
  12. alert(fGetNumber(30));//alert 101   
  13.  

對象方法實現

對象方法命名使用 f+對象類名+動詞[+名詞]形式;例如 fAddressGetEmail

事件響應函數

某事件響應函數命名方式為觸發事件對象名+事件名或者模塊名+觸發事件對象名+事件名,例如:fDivClick(),fAddressSubmitButtonClick()

3.其他注意事項

1:所有命名***使用英語表示。

2:所有變量名應該明確而必要,盡量避免不必要的容易混淆的縮寫。

3:netease.events.mouse.Handler,而不是 netease.events.mouse.MouseEventHandler。

4:對應的方法應該使用對應的動詞,例如:get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end。

5:應該避免雙重否定意義的變量,例如:bIsNotError, bIsNotFound,不可取。

6:變量應該在最小的范圍內定義,并盡可能的保持最少的活動時間。

7:循環變量***在循環中定義。例如for(var i=0,m=10;i<m;i++){ do something}。

8:盡量避免復雜的條件語句,可以使用臨時的boolean變量代替。

9:一定要避免在條件中執行語句,例如:if((i=3)>2){},不可取。

10:不要在代碼中重復使用相同意義的數字,用一個變量代替,比如 nTotal=100; num= total。

#p#

網易郵箱頁面在window只允許定義三種變量——1:全局變量;2:常量;3:類。任何業務邏輯都需要通過類方法或者示例方法實現。前兩種變量在之前文章中已經介紹,在此不再累述,接下來詳細介紹類定義和使用的規范。

定義類是通過一個閉包完成的:

  1. (function(){   
  2.   //***步:引入存在的類。引入support類   
  3.   var Support = window.Support;    
  4.     
  5.   //$是網易郵箱基礎庫“base”的引用稍后會介紹   
  6.   //第二步:定義類。可以認為返回了一個類定義 function(){},并在window下定義一個Image類   
  7.   var Image = $.createClass("Image");    
  8.     
  9.   //可以認為是jQuery的extend方法    
  10.     
  11.   //第三步:定義類屬性/方法定義   
  12.   $.Object.extend(Image,{   
  13.    _language : null,   //內部屬性   
  14.    getSize  : fImageGetSize   
  15.   });   
  16.   //第四步:定義實例屬性/方法定義   
  17.   $.Object.extend(Image.prototype,{   
  18.    name  : null,   
  19.    url   : null,   
  20.    ext   : null,   
  21.    width  : 0,   
  22.    height  : 0,   
  23.    setName  : fImageSetName,   
  24.    getName  : fImageGetName,   
  25.    init  : fImageInit   
  26.   });   
  27.   //第五步:方法實現    
  28.     
  29.   function fImageGetSize(nWidth,nHeight){   
  30.    return nWidth*nHeight;   
  31.   }    
  32.     
  33.   function fImageSetName(sName){   
  34.    var oImage = this;   
  35.    oImage.name = sName;   
  36.   }    
  37.     
  38.   function fImageGetName(){   
  39.    var oImage = this;   
  40.    return oImage.name;   
  41.   }    
  42.     
  43.   function fImageInit(sUrl){   
  44.    var oImage = this;   
  45.    oImage.url = sUrl;   
  46.    oImage.ext = Support.getExt(sUrl);   
  47.    oImage.width = Support.getWidth(sUrl);   
  48.    oImage.height = Support.getHeight(sUrl);   
  49.   }    
  50.     
  51.  })(); 

我們可以看到,這個閉包完成了以下幾件事情:

1.引入這個類需要用到的其他類。

2.定義這個類。

3.定義類的屬性和方法。

4.定義類的實例屬性和方法。

5.類和實例方法的實現。

在命名上,我們遵循了一下規則:

1.類名***字母必需大寫,例如Image,Support等。

2.屬性名需要是有意義的名詞,首字母小寫,例如oImage.width。

3.方法名需要是有意義的動詞[+名詞],首字母小寫,例如Support.getWidth

4.如果不希望被其他方法調用,需要在屬性或者方法名前面加“_”,例如oImage._language

5.如果不希望被子類調用,需要在屬性或者方法名前加“_”,例如oImage.__fire()

這里需要特別說明以下幾點:

1.方法的定義不是通過匿名函數來定義,而是集中在類定義的下面來實現。這樣的好處是能在最開始將類的屬性方法定義都羅列出來,便于通過源碼查看到對應屬性和方法。

2.在類/實例方法中,使用局部變量代替this。this不是一個好的玩意兒,一不小心就會被this搞暈。使用局部變量能夠盡量避免這樣的問題,也能夠在壓縮混淆的時候效果更好。

3.在實際開發過程中,每個類定義都單獨一個js實現。

除了類的定義,閉包不實現 任何其他邏輯。使用閉包能夠將很多變量約束在閉包作用域中,并且能夠在壓縮混淆中效果更好,除此之外,使用閉包定義類,在之后將介紹到的動態加載成為了一件十分容易的事情,稍后會和大家一起分享。

【編輯推薦】

  1. javascript解決圖片縮放及其優化
  2. JavaScript實現真正可用的任務管理器
  3. JavaScript寫法你更偏向哪個
  4. js大項目代碼的多人合作處理方法
  5. 看JavaScript如何實現頁面自適
責任編輯:張偉 來源: 網易郵箱
相關推薦

2020-11-05 10:20:54

前端編碼規范安全漏洞

2011-09-26 10:50:16

JavaScript

2015-10-19 18:16:15

2023-01-03 17:43:39

網易郵箱數倉

2012-04-16 18:08:02

網易郵箱

2014-11-13 16:43:45

網易郵箱

2013-04-08 10:33:54

編碼編碼規范

2013-04-03 14:25:36

網易郵箱

2015-10-20 23:52:32

數據泄露網易郵箱

2015-01-13 12:31:26

郵箱用戶行為報告

2015-03-18 09:34:47

程序員編碼規范

2010-07-05 21:49:27

2013-12-26 14:09:23

2013-02-26 10:11:36

前端開發Web

2015-10-19 18:18:44

2020-04-16 21:02:35

前端命名規范html規范

2015-01-14 10:11:29

郵箱用戶行為移動辦公

2013-11-12 15:14:50

易信

2012-02-03 14:07:43

2011-06-07 14:49:56

點贊
收藏

51CTO技術棧公眾號

午夜一级久久| 国产一区二区三区免费在线| 国产日韩亚洲欧美综合| 国产在线拍偷自揄拍精品| 东方av正在进入| 美国十次av导航亚洲入口| 色www精品视频在线观看| 亚洲免费av网| 婷婷开心激情网| 久久精品久久综合| 韩国精品美女www爽爽爽视频| 欧美大波大乳巨大乳| 97久久综合精品久久久综合| 欧美性少妇18aaaa视频| 午夜久久久久久久久久久| 亚洲日本国产精品| 黄一区二区三区| 日韩免费精品视频| 国产精品白浆一区二小说| 97精品视频在线看| 亚洲免费中文字幕| 大尺度在线观看| 亚洲精品成人一区| 欧美视频裸体精品| 青青青青在线视频| 成人影院在线看| 国产日韩欧美高清在线| 国产精品免费看一区二区三区| 波多野结衣在线观看视频| 亚洲欧洲一区| 欧美激情乱人伦| 夫妻性生活毛片| 第一社区sis001原创亚洲| 亚洲国产精彩中文乱码av| 丰满人妻一区二区三区53视频| 丰满少妇一区| 欧美主播一区二区三区美女| 美女av免费在线观看| av白虎一区| 亚洲综合一二区| 永久免费网站视频在线观看| 日本激情视频在线观看| 欧美激情资源网| 日韩av电影免费在线| 日产精品久久久久久久性色| 不卡高清视频专区| 精品国产乱码久久久久久久软件| 亚洲xxxx天美| 国产91精品免费| av一区二区三区在线观看| 国产免费高清av| 韩国一区二区在线观看| 成人看片人aa| 国产美女三级无套内谢| 激情六月婷婷久久| 91久久精品视频| 国产精品伦一区二区三区| 麻豆视频一区二区| 91精品久久久久久久久青青 | 亚洲一级片在线观看| 欧美性受黑人性爽| 中文字幕有码在线观看| 亚洲综合自拍偷拍| 蜜臀av无码一区二区三区| av在线资源| 欧美性xxxx极品hd欧美风情| 成人黄色一区二区| 日韩免费在线电影| 91精品一区二区三区在线观看| 99999精品| y111111国产精品久久久| 亚洲第一男人天堂| 精品人妻一区二区三区日产乱码卜| 一区三区在线欧| 国产一区二区三区精品久久久| 欧美xxxx精品| 中文字幕亚洲综合久久五月天色无吗'' | gogo亚洲国模私拍人体| 91蜜桃臀久久一区二区| 亚洲精品按摩视频| 亚洲精品国产熟女久久久| 99re66热这里只有精品8| 欧美激情极品视频| 男人天堂av在线播放| 另类成人小视频在线| 亚洲自拍高清视频网站| 四季av日韩精品一区| 久久久久久亚洲综合| 亚洲欧美日韩另类精品一区二区三区 | 国产精一区二区| 亚洲精品国产精品国自产观看浪潮| 国产精品成人一区二区三区电影毛片 | 麻豆国产一区二区| 国产精品有限公司| 国产youjizz在线| 一区二区三区不卡视频| 国产女女做受ⅹxx高潮| 亚洲国产精选| 日韩精品免费观看| 亚洲最大的黄色网址| 99av国产精品欲麻豆| 国产精品丝袜久久久久久不卡| 精品国产av 无码一区二区三区| 91香蕉视频mp4| 欧洲xxxxx| 日本在线中文字幕一区二区三区 | 欧美69xxxxx| 亚洲丝袜另类动漫二区| 精品中文字幕av| 欧美日韩中出| 中文字幕亚洲无线码在线一区| 国产一级在线观看视频| 精品一区二区三区免费视频| 久久久久久草| 欧美卡一卡二| 欧美精品xxxxbbbb| 干b视频在线观看| 日韩午夜在线电影| 动漫一区二区在线| 免费高清完整在线观看| 91久久久免费一区二区| 国产精品久久久久久在线观看| 日韩精品免费| 国产91色在线|| 视频一区二区在线播放| 亚洲午夜羞羞片| 日韩高清在线一区二区| 日本欧美视频| 欧美在线视频免费观看| 色窝窝无码一区二区三区| 亚洲黄色免费网站| 中文国产在线观看| 久久高清免费| 国产精品久久婷婷六月丁香| 四虎精品在线| 天天亚洲美女在线视频| 在线xxxxx| 激情自拍一区| 成人免费看片网站| 日本三级韩国三级欧美三级| 欧美一区欧美二区| 爱爱视频免费在线观看| 国产一区在线观看麻豆| 中文字幕99| 国产精品传媒麻豆hd| 中文字幕在线观看日韩| 国产又粗又猛又爽又| 国产偷v国产偷v亚洲高清| 国产性xxxx18免费观看视频| 麻豆成人入口| 日韩av观看网址| 国产高清视频在线| 欧美日韩一区二区三区免费看 | 57pao国产成永久免费视频| 日韩欧美午夜| 91在线免费视频| 宅男网站在线免费观看| 精品久久久久久亚洲综合网| 日本在线观看视频网站| 91香蕉国产在线观看软件| www.亚洲天堂网| 凹凸成人精品亚洲精品密奴| 国产精品久久久久久搜索| 日本中文字幕在线观看| 9191久久久久久久久久久| 中文字幕在线有码| 波多野结衣中文字幕一区| 亚洲 高清 成人 动漫| 伊人久久大香线蕉无限次| 国产精品com| 在线观看av的网站| 日韩欧美一区电影| 色网站在线播放| 国产清纯白嫩初高生在线观看91 | 另类色图亚洲色图| 国精品人妻无码一区二区三区喝尿| 亚洲大片在线观看| 一区二区精品免费| 国内精品久久久久影院薰衣草| 97久久国产亚洲精品超碰热| 欧美三级午夜理伦三级在线观看| 国产精品成人一区二区| 欧美成人精品一区二区男人看| 日韩一区二区麻豆国产| 国产日产精品一区二区三区| 国产精品嫩草99a| 极品白嫩的小少妇| 爽好多水快深点欧美视频| 佐佐木明希av| 免费久久精品| 亚洲精品日产aⅴ| 性感女国产在线| 久久精品久久久久| 亚洲三区在线播放| 欧美高清www午色夜在线视频| 精品无码人妻一区二区三区品| 国产婷婷色一区二区三区四区| 国产一级片中文字幕| 久久精品卡一| www污在线观看| 日韩一区三区| 久久精品日韩精品| 日韩精品视频在线看| 国产成人精品久久| av在线网页| 久久成年人免费电影| 色网站在线免费观看| 欧美一区二区三区免费| 日本黄色一级视频| 亚洲一区在线视频观看| 青青青视频在线播放| 不卡欧美aaaaa| 精品人妻一区二区三| 视频在线观看一区二区三区| 妺妺窝人体色777777| 国产精品99视频| 日韩欧美激情一区二区| 欧美巨大xxxx| 成人免费91在线看| 国产亚洲高清在线观看| 国产精品自产拍高潮在线观看| 一区二区三区电影大全| 久久琪琪电影院| 91精品久久| 日韩在线免费高清视频| 岛国视频免费在线观看| 亚洲精品午夜精品| 性xxxx视频| 亚洲高清在线观看| www黄色在线观看| 7777精品伊人久久久大香线蕉| 国产99免费视频| 欧美性xxxx在线播放| 亚洲免费激情视频| 亚洲福利电影网| 欧美国产在线看| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品18在线| 国产精品成人免费精品自在线观看| 欧美黄色一级生活片| 久久久国产精品不卡| 播金莲一级淫片aaaaaaa| 91免费精品国自产拍在线不卡| 三叶草欧洲码在线| 91网页版在线| 国内精品卡一卡二卡三| 久久久久久99精品| 性猛交娇小69hd| 国产精品美女久久久久久久久 | 性生活一级大片| 国产精品456露脸| xxxx国产视频| 成人av在线资源网站| 亚洲少妇一区二区三区| 不卡在线观看av| 在线观看福利片| 欧美国产日韩精品免费观看| 在线看片中文字幕| 亚洲欧洲无码一区二区三区| 顶臀精品视频www| 亚洲一二三四区| 亚洲另类欧美日韩| 色悠久久久久综合欧美99| 黄色av网站免费| 欧美欧美欧美欧美首页| 国产视频在线免费观看| 精品国产123| 久草在线网址| 久久精品欧美视频| 波多野结衣在线播放| 亚州欧美日韩中文视频| 国精产品一区二区三区有限公司| 国产精品久久色| 涩爱av色老久久精品偷偷鲁| 国产免费一区二区| 国产91久久精品一区二区| 一区二区三区视频| 亚洲经典三级| 日本在线观看免费视频| 国产激情一区二区三区四区| 熟女少妇一区二区三区| 国产精品美女一区二区| 国产在线免费视频| 欧美综合天天夜夜久久| 亚洲h视频在线观看| 亚洲午夜未删减在线观看 | 手机在线免费毛片| 91丨porny丨在线| 成人涩涩小片视频日本| 五月天激情小说综合| 中文字幕一区二区三区波野结| 欧美成人免费网站| 成人午夜影视| 国产做受69高潮| 永久免费观看精品视频| 激情视频一区二区| 久久精品青草| 北条麻妃在线观看| 国产精品影视在线观看| 中文字幕第20页| 亚洲午夜影视影院在线观看| 11024精品一区二区三区日韩| 亚洲成人av在线播放| 欧美黄色激情| 国产精品扒开腿做| 国产成人在线中文字幕| 中文字幕av日韩精品| 久久先锋影音| 熟女人妻在线视频| 亚洲精品一二三四区| 中文字幕人妻丝袜乱一区三区| 亚洲激情视频在线观看| 呦呦在线视频| 成人在线免费观看视视频| 综合色就爱涩涩涩综合婷婷| www婷婷av久久久影片| 久久国产精品色| 老头老太做爰xxx视频| 欧美日韩国产一中文字不卡| 精品久久国产视频| 久久国产一区二区三区| 欧美va在线观看| 欧美一区二区三区四区在线观看地址| 樱桃成人精品视频在线播放| 日本在线视频播放| 成人免费在线播放视频| 中文字幕二区三区| 亚洲色图综合久久| 中文日产幕无线码一区二区| 精品婷婷色一区二区三区蜜桃| 亚洲高清成人| 中文字幕av一区二区三区人妻少妇| 中文字幕日韩精品一区| 这里只有精品9| 中文字幕亚洲欧美日韩2019| 日本久久免费| 欧美一区二区三区精美影视| 久久av最新网址| 亚洲自拍偷拍一区二区| 欧美性黄网官网| 精品亚洲成a人片在线观看| 1769国产精品| 天海翼精品一区二区三区| 久色视频在线播放| 久久综合色天天久久综合图片| 国产精品久久久久久久妇| 日韩精品视频在线观看免费| 激情国产在线| 久久人人爽爽人人爽人人片av| 国产农村妇女精品一二区| asian性开放少妇pics| 色综合色狠狠综合色| 黄视频在线观看免费| 国产成人av在线播放| 欧美日韩一区二区综合| xx欧美撒尿嘘撒尿xx| 国产精品电影一区二区三区| 国产又黄又猛又爽| 欧美另类老女人| 好吊妞国产欧美日韩免费观看网站 | 亚洲精品国产一区黑色丝袜| 欧美三级日韩三级| 国产cdts系列另类在线观看| 99国产超薄丝袜足j在线观看| 在线精品一区| 欧美狂猛xxxxx乱大交3| 欧美日韩视频在线观看一区二区三区| 欧美午夜电影一区二区三区| 97免费资源站| 9色国产精品| 亚洲精品视频网址| 91精品国产91久久久久久一区二区 | 亚洲免费在线看| 香蕉视频国产在线| 国产精品成熟老女人| 中文字幕一区二区三区欧美日韩 | 国产日韩欧美视频在线观看| 欧美激情精品久久久久久黑人 | 中文字幕免费观看| 久久精品青青大伊人av| 免费福利视频一区| 日本三级黄色网址| 亚洲高清免费在线| 在线观看a视频| 粉嫩av免费一区二区三区| 日韩精品视频网站| 久久久久久激情| 亚洲视频在线免费观看| 国产成人久久精品一区二区三区| 国产精彩视频一区二区| 国产精品免费视频网站| 欧美性猛交 xxxx| 国产精品亚洲欧美导航| 亚洲成人中文| 成人黄色短视频| 日韩精品免费在线视频| 麻豆国产一区| 欧美 日韩 国产 激情| 一区2区3区在线看| 91在线直播|