编程风格规范(JavaScript)
基本规则
1.类名驼峰原则 (第一个word首字母大写): UserManagerServiceImpl
2.方法驼峰原则 (第一个word首字母小写):addUserInfo
3.常量名全部大写 单词之间用_隔开
4.杜绝 完全不规范的缩写 例如 Contribution 缩写成Cont
5.尽可能使用完整的单词来表达其意,保证代码的可阅读性
6.class、id都需要小写
7.命名使用英文,尽量不使用特殊字符
8.使用class定义样式而不是使用id,防止因id变化引起的页面布局错乱
9.一些语义化命名例子
.wrap{} //外层容器
.mod-box{} //模块容器
.btn-start{} //开始
.btn-download-ios{} //ios下载
.btn-download-andriod{} //安卓下载
.btn-head-nav1{} //头部导航链接1
.btn-news-more{} //更多新闻
.btn-play{} //播放视频
.btn-ico{} //按钮ico
.btn-lottery{} //开始抽奖
.side-nav{} //侧栏导航
.side-nav-btn1{} //侧栏导航-链接1
.btn-more{} //更多
扩展规则
1.用let
取代var
2.全局常量建议使用const
3.静态字符串一律使用单引号(' ')或反引号(``),不使用双引号("")。动态字符串使用反引号。
4.使用数组成员对变量赋值时,优先使用解构赋值。
5.函数的参数如果是对象的成员,优先使用解构赋值。
6.单行定义的对象,最后一个成员不以逗号结尾。多行定义的对象,最后一个成员以逗号结尾。
// 坏
const a = { k1: v1, k2: v2, };
const b = {
k1: v1,
k2: v2
};
// 好
const a = { k1: v1, k2: v2 };
const b = {
k1: v1,
k2: v2,
};
7.对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用Object.assign
方法。
8.如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。
9.使用扩展运算符(...)拷贝数组
10.使用 Array.from 方法,将类似数组的对象转为数组。
11.立即执行的函数可以写成箭头函数的形式
12.使用匿名函数当作参数的场合,尽量用箭头函数代替。
13.简单的、单行的、不会复用的函数,建议采用箭头函数。如果函数体较为复杂,行数较多,还是应该采用传统的函数写法。
14.所有配置项都应该集中在一个对象,放在最后一个参数,布尔值不可以直接作为参数。
15.不要在函数体内使用 arguments 变量,使用 rest 运算符(...)代替
// 坏
function concatenateAll() {
const args = Array.prototype.slice.call(arguments);
return args.join('');
}
// 好
function concatenateAll(...args) {
return args.join('');
}
16.使用默认值语法设置函数参数的默认值。
17.注意区分 Object 和 Map,只有模拟现实世界的实体对象时,才使用 Object。如果只是需要key: value
的数据结构,使用 Map 结构。
18.尽量用 Class,取代需要 prototype 的操作。
// 坏
function Queue(contents = []) {
this._queue = [...contents];
}
Queue.prototype.pop = function() {
const value = this._queue[0];
this._queue.splice(0, 1);
return value;
}
// 好
class Queue {
constructor(contents = []) {
this._queue = [...contents];
}
pop() {
const value = this._queue[0];
this._queue.splice(0, 1);
return value;
}
}
使用ESLint
用eslint来规范代码