精品欧美一区二区三区在线观看 _久久久久国色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| 欧美三级一级片| 国产强伦人妻毛片| 亚洲乱码精品| 精品国产精品一区二区夜夜嗨 | 伊人成综合网伊人222| 色哟哟国产精品| 一本色道久久综合亚洲二区三区| 国产裸体无遮挡| 亚洲激情婷婷| 亚洲女在线观看| 欧美又黄又嫩大片a级| 污污片在线免费视频| 成人sese在线| 国产精品久久视频| 久草福利资源在线观看| 亚洲黄页在线观看| 在线播放亚洲一区| av高清在线免费观看| 成a人片在线观看www视频| 国产精品一级片在线观看| 97免费视频在线播放| 在线观看日本黄色| 日本中文字幕在线一区| 在线综合亚洲欧美在线视频| 激情综合在线观看| 亚洲丝袜一区| 中日韩免费视频中文字幕| 国产精品区二区三区日本| 久久精品国产亚洲av麻豆蜜芽| 欧美日本一区| 日韩在线视频观看| 深爱五月激情网| 99香蕉久久| 色天天综合色天天久久| 国产一区二区三区小说| 色开心亚洲综合| 久久综合久久鬼色中文字| 超碰97人人人人人蜜桃| 91精品视频免费在线观看| 免费看的黄色欧美网站| 久久久久一本一区二区青青蜜月| 亚洲欧美精品久久| 亚洲日产av中文字幕| 日韩一区二区三区电影| 日韩精品一区二区三区不卡 | 久久99在线观看| 欧美亚洲第一区| 青青草免费av| 青青久久av| 精品日韩99亚洲| 国产女同无遮挡互慰高潮91| 日日夜夜天天综合| 第一福利永久视频精品| 日韩专区第三页| 国产日本在线视频| 菠萝蜜视频在线观看一区| 成人在线中文字幕| 国产九色91回来了| 免费一区视频| 欧美国产日韩视频| 国产乱国产乱老熟300| 欧美电影《轻佻寡妇》| 国产亚洲激情在线| 大地资源二中文在线影视观看| 日本成人精品| 91精品国产福利| 亚洲欧美自偷自拍另类| 欧洲精品一区二区三区| 精品成人av一区| 国产精品成人久久电影| 美女航空一级毛片在线播放| 亚洲精品日韩一| 老司机av福利| 国产精品刘玥久久一区| 国产精品国产三级国产普通话99| 欧美一区三区二区在线观看| 牛牛澡牛牛爽一区二区| www.成人在线| 99在线看视频| 亚洲免费一级片| 国产毛片精品一区| 7777奇米亚洲综合久久| 精品国产999久久久免费| 国产麻豆视频精品| 99re在线观看| 亚洲女同志亚洲女同女播放| 成人精品视频网站| 精品蜜桃一区二区三区| 深夜福利视频在线免费观看| 91麻豆免费观看| 美女一区视频| 福利视频在线导航| √…a在线天堂一区| 米仓穗香在线观看| а√天堂在线官网| 偷拍一区二区三区| 国产av无码专区亚洲精品| 午夜日韩成人影院| 精品视频一区二区不卡| 久久无码人妻一区二区三区| 国内露脸中年夫妇交换精品| 精品视频在线播放免| 精品无码一区二区三区| 日韩欧美高清在线播放| 久久九九国产精品怡红院| 久久黄色免费视频| 性欧美xxxx大乳国产app| 国产精品免费小视频| www日本视频| 久久先锋影音av鲁色资源网| av动漫免费观看| 岛国毛片av在线| 在线看国产日韩| 日韩欧美色视频| 色综合久久中文| 日韩在线视频网站| 国产精品111| 性伦欧美刺激片在线观看| 国产精品三级在线| 亚洲高清视频在线播放| 国产亚洲精品7777| 黄色片免费在线观看视频| 台湾佬成人网| 日韩欧美电影一区| 免费视频91蜜桃| 国产精品99一区二区| 国产成人午夜视频网址| 亚洲va欧美va| 神马久久一区二区三区| 久久久99精品久久| 99re99热| bl在线肉h视频大尺度| 欧美三级免费观看| 成人免费黄色av| av在线不卡顿| 97超级碰在线看视频免费在线看| 在线免费观看一级片| 成人国产精品免费观看视频| 在线视频不卡一区二区三区| 国产免费不卡| 精品国产三级a在线观看| 国产综合精品久久久久成人av| 激情综合自拍| 亚洲自拍在线观看| av一区在线观看| 精品久久久久久中文字幕| 交换做爰国语对白| 国产在线小视频| 欧美色爱综合| 欧美精品激情视频| 国产又黄又爽视频| 欧美激情一二三区| 99热成人精品热久久66| 免费成人蒂法| 性色av一区二区三区免费 | 欧美自拍偷拍一区二区| 亚洲人精品一区| 中文字幕在线综合| 国产成人调教视频在线观看| 992tv在线成人免费观看| 国产成人精品一区二三区四区五区 | 亚洲乱码日产精品bd在线观看| 成人在线高清| 亚洲性xxxx| 天堂网免费视频| 久久综合网色—综合色88| 亚洲 欧美 日韩 国产综合 在线| 中文在线综合| 欧美精品videosex性欧美| aaa国产视频| 亚洲欧美日韩在线播放| 做a视频在线观看| 99久久亚洲精品| 成人黄色av网站| 999国产在线视频| 欧美日韩黄色影视| 男女全黄做爰文章| 国内精品久久久久影院薰衣草| 中文字幕欧美日韩一区二区| 成人日韩视频| 欧美大片免费观看| 你懂的网站在线| 色婷婷国产精品综合在线观看| 女人又爽又黄免费女仆| 国产在线你懂得| 国产精品久久久99| 国产精品一区二区小说| 亚洲高清资源在线观看| www 成人av com| 国产777精品精品热热热一区二区| 亚洲精品第一页| 黄色在线视频网址| 中文av字幕一区| 中文字幕国产高清| 欧美日韩三区| 97视频中文字幕| 理论片午夜视频在线观看| 亚洲人午夜精品免费| 亚洲性猛交富婆| 亚洲另类一区二区| 天天插天天射天天干| 日韩高清在线电影| 在线看视频不卡| 黄色网一区二区| 国产精品成人国产乱一区| 美女免费久久| 亚洲精品国精品久久99热一| 欧美成人一区二区视频| 亚洲精品国产成人久久av盗摄| 男人的天堂影院| 欧美bbbbb| 免费网站永久免费观看| 日韩精品亚洲aⅴ在线影院| 国产精品中文在线| sis001亚洲原创区| 亚洲男女性事视频| 国产又黄又大又爽| 大荫蒂欧美视频另类xxxx| 国产精品精品软件男同| 94色蜜桃网一区二区三区| 亚洲精品自拍网| 精品二区视频| 欧美极品一区| 国产在线视频欧美一区| 欧美最近摘花xxxx摘花| 米奇精品一区二区三区| 亚洲欧美日韩国产中文| 国产suv精品一区二区69| 色天使色偷偷av一区二区| 国产女人被狂躁到高潮小说| 久久久久久**毛片大全| 97中文字幕在线观看| 久久激情五月婷婷| 欧日韩免费视频| 欧美日韩三级| 欧美与动交zoz0z| av在线不卡顿| 免费看成人av| 97超碰成人| 91九色国产在线| 欧美va视频| 欧美有码在线视频| 嗯啊主人调教在线播放视频| 欧美理论片在线观看| 在线看黄色av| 国产亚洲成av人片在线观看桃| 少妇一级淫片免费看| 日韩一级高清毛片| 91禁在线观看| 欧美日韩久久久| 欧美日韩一级黄色片| 亚洲国产精品人人做人人爽| 免费毛片在线播放免费| 亚洲婷婷综合久久一本伊一区| 欧美熟妇激情一区二区三区| 99r精品视频| 日韩少妇一区二区| 国产成人免费av在线| 久久出品必属精品| 狠狠色丁香久久婷婷综合_中 | 亚洲成色精品| 在线一区高清| 亚洲色图插插| 中文字幕在线乱| **女人18毛片一区二区| 亚洲看片网站| 日韩成人激情| 夜夜爽99久久国产综合精品女不卡| 国产乱码精品一区二区三区四区| 久久99九九| 免费看久久久| 蜜桃91精品入口| 视频一区欧美| 亚洲欧洲日本国产| 97精品视频| 美国av在线播放| 中文字幕乱码亚洲无线精品一区| 国产高清精品软男同| 国产精品91一区二区三区| 一区二区精品国产| 欧美1区2区视频| 伊人再见免费在线观看高清版 | av在线网页| 2021久久精品国产99国产精品| 日韩av影片| 国产成人精品久久| 日本一区免费网站| 成人福利在线观看| 美女精品久久| 亚洲xxxxx电影| 三级欧美日韩| 欧美精品一区二区三区久久| 欧美日韩一二三四| 性欧美18一19内谢| 国产综合自拍| 亚洲熟妇av一区二区三区| 免费成人在线视频观看| 麻豆网站免费观看| 成人美女在线观看| 精品熟妇无码av免费久久| 亚洲精品高清视频在线观看| 日本熟妇毛耸耸xxxxxx| 91久久线看在观草草青青| 一区二区的视频| 欧美精品一区二区久久久| 国产在线一二三| 精品中文字幕在线2019| av资源中文在线| 91青草视频久久| 日韩福利视频一区| 一区二区三区我不卡| 一区在线视频观看| 无需播放器的av| 东方欧美亚洲色图在线| 免费网站在线高清观看| 国产亚洲人成网站| 91人妻一区二区| 日本一区二区三区国色天香| japanese中文字幕| 一区二区三区四区视频精品免费 | 欧美综合一区二区| 中文字幕+乱码+中文| 777色狠狠一区二区三区| 午夜精品久久久久久久99热黄桃| 日韩精品中文字| av网站网址在线观看| 日韩免费在线观看视频| 日本国产亚洲| 鲁片一区二区三区| 欧美片第1页综合| 五月天亚洲视频| 91片黄在线观看| 久久机热这里只有精品| 欧美另类久久久品| 成人在线二区| 91国产视频在线| 免费一级黄色录像| 国产精品久久二区二区| 日日夜夜狠狠操| 亚洲国产免费av| av毛片在线播放| 国产精品永久免费在线| 亚洲免费观看高清完整版在线观| 国产激情片在线观看| 久色婷婷小香蕉久久| 在线观看亚洲大片短视频| 黄色成人在线免费| 国产乱子伦精品无码码专区| 国产亚洲精品激情久久| 无遮挡在线观看| 国产精品区一区| 狠狠色丁香久久综合频道| 999香蕉视频| 成人午夜激情视频| 澳门黄色一级片| 欧美放荡的少妇| 免费a在线看| 国产精品极品在线| 中文字幕伦av一区二区邻居| 1024av视频| 99精品视频中文字幕| 久久亚洲成人av| 91精品国产综合久久精品图片| 国产精品四虎| 国产精品成熟老女人| 国产成人影院| 日韩视频免费在线播放| 99r国产精品| 中文字幕第四页| 亚洲精品中文字幕女同| 日韩制服一区| 亚洲区一区二区三区| 蜜桃一区二区三区在线| 午夜激情福利电影| 在线综合亚洲欧美在线视频| 爆操欧美美女| 99视频免费观看| 久久久久99| 国产精品久久久久久成人| 欧美午夜丰满在线18影院| 欧美女子与性| 国产精品成人播放| 香蕉精品视频在线观看| 国产xxxxhd| 国产精品久久久久久久久晋中| 在线视频一区二区三区四区| 亚洲激情国产精品| 欧美日韩美女| 亚洲制服欧美久久| 成人一区在线看| 国产精品一区无码| 亚洲精品日韩在线| 欧美xxx网站| 一区一区视频| 高清在线成人网| 无码人妻丰满熟妇精品区| 日韩在线观看免费高清完整版| 日韩亚洲精品在线观看| 少妇高潮喷水在线观看|