zoukankan      html  css  js  c++  java
  • 淘宝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 构造器.

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

  • 相关阅读:
    UnrealEngine4之UObject(一)
    【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集
    谈论java中怎样处理高并发的问题
    LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
    Android ScrollView中嵌套ListView
    桌面云
    galera mysql cluster
    CSS3绘制灰太狼动画,绝对精彩
    加权重随机算法
    学习是为了找工作?
  • 原文地址:https://www.cnblogs.com/shuaixf/p/2480360.html
Copyright © 2011-2022 走看看