本文档的目标是使 ENJOY 前端小组 JavaScript 代码风格保持一致
- 缩进统一使用 4个空格做为一个缩进层级,远离 2个空格 或 tab字符吧基友们
function hello (name) {
console.log('hi', name)
}
- 单双引号统一纯字符串使用单引号,其他双引号
console.log('hello there')
$("")
- 关键字后加空格
关键字有介么多:if / else / for / while / function / switch / do / try / catch / finally
if (condition) { ... } // ✓ ok
if(condition) { ... } // ✗ avoid
- 函数声明、具名函数表达式中,函数名和
(
之间加空格
function name (arg) { ... } // ✓ ok
function name(arg) { ... } // ✗ avoid
run(function () { ... }) // ✓ ok
run(function() { ... }) // ✗ avoid
- 二元运算符两侧必须有一个空格,一元运算符与操作对象之间不能有空格。
// ✓ ok
var x = 2
var message = 'hello, ' + name + '!'
var a = !arr.length;
a++;
// ✗ avoid
var x=2
var message = 'hello, '+name+'!'
var a = ! arr.length;
a + + ;
-
,
后面要加空格, ,
前别加呀
// ✓ ok
var list = [1, 2, 3, 4]
function greet (name, options) { ... }
// ✗ avoid
var list = [1,2,3,4]
function greet (name,options) { ... }
- 语句换行不加
;
,晓得不啦
// ✓ ok
var list = [1, 2, 3, 4]
function greet (name, options) { ... }
//✗ avoid
var list = [1, 2, 3, 4];
function greet (name, options) { ... };
- === 代替 ==
例外: obj == null ( check null || undefined)
if (name === 'John') // ✓ ok
if (name == 'John') // ✗ avoid
if (name !== 'John') // ✓ ok
if (name != 'John') // ✗ avoid
- 对于 if...else...,在else前不要添加一个换行
// ✓ ok
if (condition) {
// ...
} else {
// ...
}
// ✗ avoid
if (condition) {
// ...
}
else {
// ...
}
- 在 if...else... 语句中,如果有多行,请使用省略块{...} , 一行的可以不用撒
// ✓ ok
if (options.quiet !== true) console.log('done')
// ✓ ok
if (options.quiet !== true) {
console.log('done')
}
// ✗ avoid
if (options.quiet !== true)
console.log('done')
- 报错要处理昂
// ✓ ok
run(function (err) {
if (err) throw err
window.alert('done')
})
// ✗ avoid
run(function (err) {
window.alert('done')
})
- 多余的换行是不允许滴
// ✓ ok
var value = 'hello world'
console.log(value)
// ✗ avoid
var value = 'hello world'
换行
换行
换行(打不出来,自行脑补可以伐?
console.log(value)
- 对于三目运算如果有多行,
?
和 :
请放在语句前面,
// ✓ ok
var location = env.development ? 'localhost' : 'www.api.com'
// ✓ ok
var location = env.development
? 'localhost'
: 'www.api.com'
// ✗ avoid
var location = env.development ?
'localhost' :
'www.api.com'
-
(
, [
, 、
,如果以这三个符号为开头,符号前加上;
// ✓ ok
;(function () {
window.alert('ok')
}())
// ✓ ok
;[1, 2, 3].forEach(bar)
// ✓ ok
;`hello`.indexOf('o')
// ✗ avoid
(function () {
window.alert('ok')
}())
// ✗ avoid
[1, 2, 3].forEach(bar)
// ✗ avoid
`hello`.indexOf('o')
当然,我们一般这么做:
var nums = [1, 2, 3]
nums.forEach(bar)
替换
;[1, 2, 3].forEach(bar)
更多待补充...