当前位置: 代码迷 >> JavaScript >> JavaScript编码作派约定
  详细解决方案

JavaScript编码作派约定

热度:328   发布时间:2013-08-01 15:23:18.0
JavaScript编码风格约定

代码风格

缩进?

  • 两个空格,无需更长的缩进,无需Tab缩进

?参数和表达式之间的空格?

  • 使用紧凑型风格

?

代码行长度?

  • 最多80个字符(当在代码块中,除了2个空格外的其他缩进允许将函数参数与首个函数参数的位置对齐。另一种选择是当自动换行时使用4个空格缩进,而不是2个。)

?分号?

  • 始终使用分号,不依赖于隐式插入
  • 在某些情况下不要使用expect

?注释?

  • 遵循JSDoc约定

?引号?

  • 推荐单引号

?变量声明?

  • 一次声明一个,不使用逗号
Js代码?
  1. var?foo?=?'';??
  2. var?bar?=?'';???
  • 一次声明多个,在行结束处使用逗号分隔
Js代码?
  1. var?foo?=?"",??
  2. ??bar?=?"",??
  3. ??quux;???

?大括号?

  • 在同一行使用左大括号
Js代码?
  1. function?thisIsBlock(){??
NPM指南中指出,只在代码块需要包含下一行时使用大括号,否则不使用。

全局变量?

  • 不要使用全局变量:(全局变量命名冲突难以调试,并可能在两个项目进行正整合时出现一些棘手的问题。为了便于共享公用的JavaScript代码,需要制定公约来避免冲突发生。不应该使用隐式全局变量。)

?命名风格

变量命名?

  • 开始的第一个单词小写,之后的所有单词首字母大写
Js代码?
  1. var?foo?=?"";??
  2. var?fooName?=?"";??
?常量命名
  • 使用大写字母
Js代码?
  1. var?CONS?=?'VALUE';???

?函数命名?

  • 开始的第一个单词小写,之后的所有单词首字母大写(驼峰式)(推荐使用长的、具描述性的函数名)?
Js代码?
  1. function?veryLongOperationName??
  2. function?short()..??
? ? ? 关键字形式的函数命名:?
Js代码?
  1. function?isReady()??
  2. function?setName()??
  3. function?getName()???

?数组命名?

  • 使用复数形式
Js代码?
  1. var?documents?=?[];???

?对象和类命名?

  • 使用如下形式
Js代码?
  1. var?ThisIsObject?=?new?Date;????

?其他命名?

  • 针对长文件名和配置键使用all-lower-hyphen-css-case形式

?根据上述风格来配置.jshintrc文件

JSHint(http://www.jshint.com/)是一个JavaScript语法和风格检查工具,你可以用它来提醒代码风格相关的问题。它可以很好地被集成到许多常用的编辑器中,是统一团队编码风格的一个很好的工具。

你可以通过JSHint文档查看可用的选项:http://www.jshint.com/docs/#options

下面根据本文上面每个分类下的第一种风格来创建一个.jshintrc文件。你可以将它放到项目中根目录中,JSHint-avare代码编辑器将会按照它来统一项目中的所有代码风格。?

Js代码?
  1. {??
  2. ??"camelcase"?:?true,??
  3. ??"indent":?2,??
  4. ??"undef":?true,??
  5. ??"quotmark":?single,??
  6. ??"maxlen":?80,??
  7. ??"trailing":?true,??
  8. ??"curly":?true??
  9. }???
  相关解决方案