淘宝JavaScript 编码风格规范

行与缩进

  语句行

  尽可能不要让每行超过 120 个字符;

  语句必须以分号作为结束符, 不要忽略分号;

 

空格

  数值操作符(如, +/-/*/% 等)两边留空;

  赋值操作符/等价判断符两边留一空格;

  for 循环条件中, 分号后留一空格;

  变量声明语句, 数组值, 对象值及函数参数值中的逗号后留一空格;

  空行不要有空格;

  行尾不要有空格;

  逗号和冒号后一定要跟空格;

  点号前后不要出现空格;

  空对象和数组不需要填入空格;

  函数名末尾和左括号之间不要出现空格;

 

空行

  逻辑上独立的代码块使用空行分隔;

  文件末尾留 1~2 个空行;

  不要吝啬空行. 尽量使用空行将逻辑相关的代码块分割开, 以提高程序的可读性.

  缩进

  以 4 个空格为一缩进层次;

  变量声明:

  多个变量声明时, 适当换行表示;

  参照 var 关键字, 缩进一层次;

  函数参数:

  函数参数写在同一行上;

  传递匿名函数时, 函数体应从调用该函数的左边开始缩进;

  数组和对象初始化时:

  如果初始值不是很长, 尽量保持写在单行上;

  初始值占用多行时, 缩进一层次;

  对象中, 比较长的变量/数值, 不要以冒号对齐;

  二元/三元操作符:

  操作符始终跟随前行;

  实在需要缩进时, 按照上述缩进风格;

  表达式中的缩进同变量声明时;

 

括号

  原则: 不要滥用括号, 必要时一定要使用.

  if/else/while/for 条件表达式必须有小括号;

  语句块必须有大括号;

  一元操作符(如 delete, typeof, void)或在某些关键词(如 return, throw, case, new) 之后, 不要使用括号;

 

变量

  变量如有较广的作用域, 使用全局变量; 如果是在类中, 可以设计成为一个类的成员;

  函数体中, 多个局部变量集中在一起声明, 避免分散;

  适当延迟变量的初始化;

  字符串

  JS 代码中, 单行字符串使用单引号;

  JS 代码中, 多行字符串使用 + 拼接形式, 不要使用 \ 拼接;

  HTML 中 Element 属性, 使用双引号;

 

命名规范

  原则: * 尽量避免潜在冲突; * 精简短小, 见名知意;

  普通变量统一使用驼峰形式;

  常量使用全部大写, 多个单词以下划线分隔;

  枚举量, 同常量;

  私有变量, 属性和方法, 名字以下划线开头;

  保护变量, 属性和方法, 名字同普通变量名;

  方法和函数的可选参数, 名字以 opt_ 开头, 使用 @param 标记说明;

  方法和函数的参数个数不固定时:

  可添加参数 var_args 为参数个数;

  取代使用 arguments;

  使用 @param 标记说明;

  Getter/Setter 命名:

  以 getFoo/setFoo(value) 形式;

  布尔类型使用 isFoo()/hasFoo()/canDo()/shouldDO() 也可;

 

命名空间

  为全局代码使用命名空间, 如 sloth.*;

  外部代码和内部代码使用不同的命名空间;

  重命名那些名字很长的变量, 不要在全局范围内创建别名, 而仅在函数块作用域中使用;

  文件名应全部使用小写字符, 且不包含除 - 和 _ 外的标点符号;

  临时的重复变量建议以 i, j, k, ..., 命名;

 

 

  声明变量时, 必须加上 var 关键字.

  尽量减少全局变量的使用.

  语句总是以分号结尾.

  不要在块内声明函数.

  标准特性优于非标准特性(如果类库有提供, 优先使用类库中的函数).

  不要封装基本类型.

  只在解析序列化串时使用 eval() .

  禁止使用 with .

  减少使用 continue 和 break .

  仅在函数内使用 this .

  使用 Array/Object 直接量, 避免使用 Array/Object 构造器.

  禁止修改内置对象的原型.

转载于:https://www.cnblogs.com/shuaixf/archive/2012/05/03/2480360.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美科学基金会欲向公众征集想法

来源:中国科学报你有个或许会改变世界的点子?美国国家科学基金会(NSF)洗耳恭听。这个位于弗吉尼亚州亚历山大市、拥有78亿美元经费的研究机构已从科学家那里获得了很多好的研究计划。虽然这已经超出了其能资助的范围,但…

解决i9001WiFi频繁断线

去年年底入手Galaxy S Plus,玩安卓快半年时间,最近为了方便使用Airdroid对手机进行管理,在路由器中设置了IP和MAC绑定,却发现每隔大约1分钟或者更短时间,WiFi连接就会自动断开,求助Google,有一位…

学习编程的帷幕

我是康永兴,是陕西科技大学的一名本科生,来自河北张家口市,是一个阳光大男孩。我之前对编程这方面有过了解,准备以后从事这方面的工作,希望可以通过自己的努力在IT界创造一片属于自己的天地。当然,我现在对…

专家把脉,深入分析八种前景看好的物联网业务形态

来源:通信世界全媒体摘要:物联网将会为经济带来新动力,对社会带来新变革,它的业务形态也在发展变化。未来随着更多成熟的业务场景的出现,会演变出更多有前景的应用形态,也会带来更多的市场机会。万物互联是…

opacity:0.99;

IE浏览器似乎给body元素默认了一个相对定位属性(position: relative)”。其实,IE下,z-index为负值的层确实是在body下的。大概是因为body的默认背景色是transparent(我猜的,alert出来的为空),html的默认背景…

人工智能产业的发展是什么样的呢?

来源:人工智能大健康引领AI产业发展的技术竞赛,主要是巨头之间的角力。由于AI产业核心技术和资源掌握在巨头企业手里,而巨头企业在产业中的资源和布局,都是创业公司所无法比拟的,所以巨头引领着AI发展。目前&#xff0…

个性化推荐

“探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理论讲解的基础上,还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐…

这个程序没毛病

#include <stdio.h> int main() {int a[3]{11,33,22},i,j;for(i0;i<2;i)&#xff1b;{for(ji1;j<3;j)&#xff1b;{if(a[j]>a[i]){int k;ka[i];a[i]a[j];a[j]k;}}}for(j0;j<3;j)&#xff1b;{printf("%d ",a[j]);}return 0;} 这个程序没毛病&#…

报告 | 从20世纪70年代至今,自动驾驶汽车的发展经历了哪些历史性的变革?

来源&#xff1a;学术头条摘要&#xff1a;当今&#xff0c;无人驾驶技术已经成为整个汽车产业的最新发展方向。科研院校、汽车制造厂商、科技公司、无人驾驶汽车创业公司以及汽车零部件供应商在无人驾驶技术领域进行不断地探索。今天我们为大家梳理一下无人驾驶汽车的国内外发…

访问List的itemRenderer的组件中定义的方法

主程序文件List1.mxml: 1 <?xml version"1.0" encoding"utf-8" ?>2 <mx:Application xmlns:mx"http://www.adobe.com/2006/mxml">3 <mx:Style>4 Application5 {6 font-size:12px;7 }8 </mx:Style>…

这个C怎么了?求大佬指教

题目为&#xff1a;计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值。 #include <stdio.h>int main() {double sum0;int i0;int k0;for(i1;i<100;i){double j0.0;if(i%20){k;j1/k;sum sum - j;}else{k;j1/k;sumsumj;}}printf("1/1-1/21/3......-1/100%d\n"…

2012年5月份第2周51Aspx源码发布详情

图像相似度比较源码 2012-5-11[VS2010]程序介绍&#xff1a;第一步&#xff0c;缩小尺寸。将图片缩小到8x8的尺寸&#xff0c;总共64个像素。这一步的作用是去除图片的细节&#xff0c;只保留结构、明暗等基本信息&#xff0c;摒弃不同尺寸、比例带来的图片差异。第二步&#x…

量子力学工具箱再添利器—科学家提出高效驱动微型引擎概念

把球推上山坡需要能量。量子引擎或能通过反复测量实现同样的工作。来源&#xff1a;中国科学报要测量一个原子&#xff0c;不可能不扰动它&#xff0c;至少根据量子力学是这样的。但两名物理学家报告称&#xff0c;这一效应似乎有点麻烦&#xff0c;但它可以驱动一个微型引擎以…

四个小时不止是敲了30多行代码,还懂了好多

在某网页看到一题目为&#xff1a;求出0&#xff5e;999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数&#xff0c;其各位数字的立方和确好等于该数本身&#xff0c;如&#xff1b;153&#xff1d;1&#xff0b;5&#xff0b;3?&#xff0c;则153是一个“水仙花数…

人工智能离不开它——贝叶斯公式的前世今生

来源&#xff1a;图灵人工智能摘要&#xff1a;人工智能、无人驾驶、语音图片识别与大数据有什么关系&#xff1f;海难空难如何搜救&#xff1f;垃圾短信、垃圾邮件如何识别&#xff1f;这些看起来彼此不相关的领域之间会有什么联系吗&#xff1f;答案是&#xff0c;它们都会用…

Ts_半分查找猜数字游戏(初始版),

第一次使用半分查找&#xff0c;勉强可以看 封装函数体 int look(int arr[],int num,int r){int left 0;int right 0;right r;while (left < right) //开始执行半分查找{int midle left (right - left) / 2;if (arr[midle] num){return midle;}els…

键盘显示影响布局的解决方法

一、AndroidManifet.xml 设置为对应的Activity添加&#xff1a;android:windowSoftInputMode"adjustPan"二 、后台代码编写getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 转载于:https://www.cnblogs.com/yangzhong/archive/201…

2021年全球医疗机器人市场规模达207亿美元,中国仅占5%(附36家中国企业名单)...

来源&#xff1a; 筑医台 摘要&#xff1a;目前的医疗机器人市场中&#xff0c;欧美企业占据了主要的市场份额。中国医疗机器人仍处于研发或临床试验阶段&#xff0c;还未实现医疗机器人产品规模化&#xff0c;在医疗机构的普及率也较低&#xff0c;但正努力赶上。“手术时间一…

windows下集成maven+eclipse开发环境二:集成maven到eclipse,并使用nexus作为maven仓库...

上一章中&#xff0c;我们已经成功安装了nexus&#xff0c;现在我们将在eclipse中集成maven插件&#xff0c;并将nexus配置成maven的仓库。 1、安装eclipse的svn插件subeclipse&#xff0c;打开你的eclipse&#xff08;笔者使用的是eclipse 3.6&#xff09;&#xff0c;依次打开…

三子棋,小试牛刀

三子棋的初始版 表面结构 <span style"color:#33ccff"> #include "game.h" void menu() {printf(" ★★★★★★★★★★★★★★★★★★\n");printf(" ★★★ ★★★\n");printf("★★★ 1…