JavaScript 开发规范

原文来自淘宝前端开饭规范:http://kissyteam.github.com/docs/html/styleguide/js-style-rules.html

 

行与缩进

语句行

  1. 尽可能不要让每行超过 120 个字符;
  2. 语句必须以分号作为结束符, 不要忽略分号;

空格

  1. 数值操作符(如, +/-/*/%  等)两边留空;
  2. 赋值操作符/等价判断符两边留一空格;
  3. for 循环条件中, 分号后留一空格;
  4. 变量声明语句, 数组值, 对象值及函数参数值中的逗号后留一空格;
  5. 空行不要有空格;
  6. 行尾不要有空格;
  7. 逗号和冒号后一定要跟空格;
  8. 点号前后不要出现空格;
  9. 空对象和数组不需要填入空格;
  10. 函数名末尾和左括号之间不要出现空格;

空行

  1. 逻辑上独立的代码块使用空行分隔;
  2. 文件末尾留 1~2  个空行;
  3. 不要吝啬空行。尽量使用空行将逻辑相关的代码块分割开,以提高程序的可读性。

缩进

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

  2. 变量声明:

    • 多个变量声明时, 适当换行表示;
    • 参照 var  关键字, 缩进一层次;
  3. 函数参数:

    • 函数参数写在同一行上;
    • 传递匿名函数时, 函数体应从调用该函数的左边开始缩进;
  4. 数组和对象初始化时:

    • 如果初始值不是很长, 尽量保持写在单行上;
    • 初始值占用多行时, 缩进一层次;
    • 对象中, 比较长的变量/数值, 不要以冒号对齐;
  5. 二元/三元操作符:

    • 操作符始终跟随前行;
    • 实在需要缩进时, 按照上述缩进风格;
  6. 表达式中的缩进同变量声明时;

括号

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

  1. if/else/while/for  条件表达式必须有小括号;
  2. 语句块必须有大括号;
  3. 一元操作符(如 delete,  typeof,  void )或在某些关键词(如 return,  throw,  case,  new ) 之后, 不要使用括号;

变量

  1. 变量如有较广的作用域, 使用全局变量; 如果是在类中, 可以设计成为一个类的成员;
  2. 函数体中, 多个局部变量集中在一起声明, 避免分散;
  3. 适当延迟变量的初始化;

字符串

  1. JS 代码中, 单行字符串使用单引号;
  2. JS 代码中, 多行字符串使用 +  拼接形式, 不要使用 \  拼接;
  3. HTML 中 Element  属性, 使用双引号;

命名规范

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

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

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

  3. 枚举量, 同常量;

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

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

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

  7. 方法和函数的参数个数不固定时:
    • 可添加参数 var_args  为参数个数;
    • 取代使用 arguments ;
    • 使用 @param  标记说明;
  8. Getter/Setter  命名:
    • 以 getFoo/setFoo(value)  形式;
    • 布尔类型使用 isFoo()/hasFoo()/canDo()/shouldDO()  也可;
  9. 命名空间:
    • 为全局代码使用命名空间, 如 sloth.* ;
    • 外部代码和内部代码使用不同的命名空间;
  10. 重命名那些名字很长的变量, 不要在全局范围内创建别名, 而仅在函数块作用域中使用;

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

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

     

     

    JavaScript 语言规范

    • 声明变量时,必须加上 var  关键字。
    • 尽量减少全局变量的使用。
    • 语句总是以分号结尾。
    • 不要在块内声明函数。
    • 标准特性优于非标准特性(如果类库有提供,优先使用类库中的函数)。
    • 不要封装基本类型。
    • 只在解析序列化串时使用 eval()  。
    • 禁止使用 with  。
    • 减少使用 continue  和 break  。
    • 仅在函数内使用 this  。
    • 使用 Array/Object  直接量,避免使用 Array/Object  构造器。
    • 禁止修改内置对象的原型。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值