最好用的javascript编码规范中文

最好用的javascript编码规范中文版类型原始值:存取直接作用于它自身。ostringonumberobooleanonulloundefined1.varfoo=1;2.varbar=foo;3.4.bar=9;5.6.console.log(foo,bar);//=>1,9复杂类型:存取时作用于它自身值的引用。oobjectoarrayofunction1.varfoo=[1,2];2.varbar=foo;3.4.bar[0]=9;5.6.console.log(foo[0],bar[0]);//=>9,9对象使用直接量创建对象。1.//bad2.varitem=newObject();3.4.//good5.varitem={};不要使用保留字作为键名,它们在IE8下不工作。1.//bad2.varsuperman={3.default:{clark:'kent'},4.private:true5.};6.7.//good8.varsuperman={9.defaults:{clark:'kent'},10.hidden:true11.};使用同义词替换需要使用的保留字。1.//bad2.varsuperman={3.class:'alien'4.};5.6.//bad7.varsuperman={8.klass:'alien'9.};10.11.//good12.varsuperman={13.type:'alien'14.};对象使用直接量创建数组。1.//bad2.varitems=newArray();3.4.//good5.varitems=[];向数组增加元素时使用Array#push来替代直接赋值。1.varsomeStack=[];2.3.4.//bad5.someStack[someStack.length]='abracadabra';6.7.//good8.someStack.push('abracadabra');当你需要拷贝数组时,使用Array#slice。1.varlen=items.length;2.varitemsCopy=[];3.vari;4.5.//bad6.for(i=0;i<len;i++){7.itemsCopy[i]=items[i];8.}9.10.//good11.itemsCopy=items.slice();使用Array#slice将类数组对象转换成数组。1.functiontrigger(){2.varargs=Array.prototype.slice.call(arguments);3....4.}字符串使用单引号‘’包裹字符串。1.//bad2.varname="BobParr";3.4.//good5.varname='BobParr';6.7.//bad8.varfullName="Bob"+this.lastName;9.10.//good11.varfullName='Bob'+this.lastName;超过100个字符的字符串应该使用连接符写成多行。注:若过度使用,通过连接符连接的长字符串可能会影响性能。1.//bad2.varerrorMessage='ThisisasuperlongerrorthatwasthrownbecauseofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodowiththis,youwouldgetnowherefast.';3.4.//bad5.varerrorMessage='Thisisasuperlongerrorthatwasthrownbecause\6.ofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodo\7.withthis,youwouldgetnowhere\8.fast.';9.10.//good11.varerrorMessage='Thisisasuperlongerrorthatwasthrownbecause'+12.'ofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodo'+13.'withthis,youwouldgetnowherefast.';程序化生成的字符串使用Array#join连接而不是使用连接符。尤其是IE下1.varitems;2.varmessages;3.varlength;4.vari;5.6.messages=[{7.state:'success',8.message:'Thisoneworked.'9.},{10.state:'success',11.message:'Thisoneworkedaswell.'12.},{13.state:'error',14.message:'Thisonedidnotwork.'15.}];16.17.length=messages.length;18.19.//bad20.functioninbox(messages){21.items='<ul>';22.23.for(i=0;i<length;i++){24.items+='<li>'+messages[i].message+'</li>';25.}26.27.returnitems+'</ul>';28.}29.30.//good31.functioninbox(messages){32.items=[];33.34.for(i=0;i<length;i++){35.//usedirectassignmentinthiscasebecausewe'remicro-optimizing.36.items[i]='<li>'+messages[i].message+'</li>';37.}38.39.return'<ul>'+items.join('')+'</ul>';40.}函数函数表达式:1.//匿名函数表达式2.varanonymous=function(){3.returntrue;4.};5.6.//命名函数表达式7.varnamed=functionnamed(){8.returntrue;9.};10.11.//立即调用的函数表达式(IIFE)12.(function(){13.console.log('WelcometotheInternet.Pleasefollowme.');14.}());永远不要在一个非函数代码块(if、while等)中声明一个函数,把那个函数赋给一个变量。浏览器允许你这么做,但它们的解析表现不一致。注:ECMA-262把块定义为一组语句。函数声明不是语句。1.//bad2.if(currentUser){3.functiontest(){4.console.log('Nope.');5.}6.}7.8.//good9.vartest;10.if(currentUser){11.test=fun...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?