- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网易邮箱前端JavaScript编码规范
网易邮箱前端JavaScript编码规范基础规范部分在多年开发邮箱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是弱语言造成的。在定义大量变量的时候,我们需要很明确的知道当前变量是什么属性,如果只通过普通单词,是很难区分的。例如:var?group?=?[];? ?group.name?=?myGroup;? ?/****? ?some?code? ?***/?//这时候你还能一眼就看出来group是什么吗??又例如:var?checked?=?false;? ?var?check?=?function(){? ?????return?true;? ?}? ?/**? ?some?code? ?**/?if(check){//可能将checked写成check,由于不能很快速的发现check是函数,造成逻辑错误? ?????//do?some?thing? ?}?如果我们写成:var?bChecked?=?false;? ?var?fCheck?=?function(){? ?????return?true;? ?}? ?/**? ?some?code? ?**/?if(bChecked){? ?????//?do?some?thing? ?}? ?if(fCheck()){? ?????//?do?other?thing? ?}?就清楚很多了。全局变量以及常量规范网易邮箱前端是基于“类”的概念来来开发javascript的(稍后会专门介绍),每个类定义都是在一个闭包函数中,除了在window下有类的定义而外,只允许有两种变量定义在全局,那就是全局变量和常量。全局变量使用g作为前缀,定义在window下。例如gUserName,gLoginTime。某些作为不允许修改值的变量认为是常量,全部字母都大写。例如:COPYRIGHT,PI。常量可以存在于函数中,也可以存在于全局。看个例子就 很容易明白为什么要这样定义了:var?userName?=?dongua;? ?function?checkName(userName){? ?????//存在函数参数userName以及全局变量userName,如果要比较两个值是否相等,必需写为? ?????return?window.userName?==?userName? ?}?如果使用了全局变量的前缀,就十分清晰了。2. 函数命名规范统一使用动词或者动词[+名词]形式,例如:fGetVersion(),fSubmitForm(),fInit();涉及返回逻辑值的函数可以使用is,has等表示逻辑的词语代替动词。如果有内部函数,使用__f+动词[+名词]形式,内部函数必需在函数最后定义。例如:function?fGetNumber(nTotal){? ?????if(nTotal100){? ???nTotal?=?100;? ????}? ??return?__fAdd(nTotal);??? ??? ??function?__fAdd(nNumber){? ???nNumber++;? ???return?nNumber;? ??}? ?}? ?alert(fGetN
文档评论(0)