传送门:https://github.com/fex-team/styleguide/blob/master/javascript.md
笔记:
1.文件结尾处,保留一个空行
2.使用四个空格作为一个缩进级,不允许使用两个空格或者tab
3.switch 下的 case 和 default 必须增加一个缩进层级
4.二元运算符两侧必须有一个空格,一元运算符(!、++、–、+、-、sizeof、~)与操作对象之间不允许有空格
5.if / else / for / while / function / switch / do / try / catch / finally 关键字后,必须有一个空格
6.在对象创建时,属性中的 : 之后必须有空格,: 之前不允许有空格
7., 和 ; 前不允许有空格
8.在函数调用、函数声明、括号表达式、属性访问、if / for / while / switch / catch 等语句中,() 和 [] 内紧贴括号部分不允许有空格。
9.尾不得有多余的空格
10.每行不得超过 120 个字符(超长不可分割的代码除外,比如正则表达式)
11.不得省略语句结束的分号
12. 在 if / else / for / do / while 语句中,即使只有一行,也不得省略块 {…}
13.枚举变量 使用 Pascal命名法,枚举的属性 使用 全部字母大写,单词间下划线分隔 的命名方式
14.由多个单词组成的缩写词,在命名中,根据当前命名法和出现的位置,所有字母的大小写与首字母的大小写保持一致
15.类名使用名词,函数名使用动宾短语
16.boolean 类型的变量使用 is 或 has 开头。
17.Promise对象 用 动宾短语的进行时 表达
18.避免使用 /…/ 这样的多行注释。有多行注释内容时,使用多个单行注释
19.为了便于代码阅读和自文档化,以下内容必须包含以 /**…*/ 形式的块注释中。
解释:
文件
namespace
类
函数或方法
类属性
事件
全局变量
常量
AMD 模块
文档注释前必须空一行
20.型定义都是以{开始, 以}结束
21.变量必须 即用即声明,不得在函数或其它形式的代码块起始位置统一声明所有变量
22. 在 Equality Expression 中使用类型严格的 ===。仅当判断 null 或 undefined 时,允许使用 == null
23.转换成 string 时,使用 + ‘’
24.转换成 number 时,通常使用 +
25.使用 parseInt 时,必须指定进制
26.转换成 boolean 时,使用 !!
27.number 去除小数点,使用 Math.floor / Math.round / Math.ceil,不使用 parseInt
28. 字符串开头和结束使用单引号 ’
29. 对象创建时,如果任何一个 属性 需要添加引号,则所有 属性 必须添加 ’
30. for in 遍历对象时, 使用 hasOwnProperty 过滤掉原型中的属性。
31.遍历数组不使用 for in
32.在适当的时候将闭包内大对象置为 null
33.避免使用直接 eval 函数
34.减少 delete 的使用
35.全局运行环境中,require 必须以 async require 形式调用
36…
未完待续…