JavaScript代码规范(语法篇)
Opened this issue · 0 comments
LeeJim commented
(no-cond-assign) 禁止在条件表达式里出现赋值运算符:
// Bad
if (x = 0) {
}
// Good
if (x === 0) {
}
(no-console) 尽量不要在生产上使用console控制台输出:
// Bad
console.log('hello world')
(no-debugger) 禁止使用debugger
// Bad
function isTruthy(x) {
debugger;
return x;
}
// Good
function isTruthy(x) {
return x; // set a breakpoint at this line
}
(no-dupe-args) 禁止使用同样的函数参数
// Bad
function foo(a, b, a) {
console.log("value of the second a:", a);
}
// Good
function foo(a, b, c) {
console.log(a, b, c);
}
(no-dupe-keys) 禁止在对象里使用同样的key值
// Bad
var foo = {
bar: "baz",
bar: "qux"
};
// Good
var foo = {
bar: "baz",
quxx: "qux"
};
(no-duplicate-case) 禁止在switch语句里使用相同的case
// Bad
switch (a) {
case "1":
break;
case "2":
break;
case "1": // duplicate test expression
break;
default:
break;
}
// Good
switch (a) {
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
(no-empty) 禁止出现空的块级作用域,但是可以只有注释:
// Bad
if (foo) {
}
while (foo) {
}
try {
doSomething();
}
catch(ex) {
}
finally {
}
// Good
if (foo) {
// empty
}
while (foo) {
/* empty */
}
(no-inner-declarations) 禁止在块级作用域内部使用var声明以及函数申明
// Bad
if (foo) {
var bar1;
function add(){}
}
// Good
if (foo) {
let bar1;
var add = function(){}
}
(curly) 强制使用大括号,就算只有一行代码:
// Bad
if (foo) foo++;
while (bar)
baz();
// Good
if (foo) {
foo++;
}
while (bar) {
baz();
}
(default-case) switch语句正确使用default:
// Bad
switch (a) {
case 1:
/* code */
break;
}
// Good
switch (a) {
case 1:
/* code */
break;
default:
/* code */
break;
}
switch (a) {
case 1:
/* code */
break;
// no default
}
(dot-notation) 尽量使用点.
来读对象的value值
// Bad
var x = foo["bar"];
// Good
var x = foo.bar;
var x = foo[bar];
(eqeqeq) 使用全等===
代替==
// Bad
a == b
foo == true
bananas != 1
// Good
a === b
foo === true
bananas !== 1
(no-loop-func) 禁止在循环语句里定义函数:
// Bad
while(i) {
var a = function() { return i; };
a();
}
// Good
var a = function() {};
while (i) {
a();
}
(no-multi-str) 禁止字符串跨行
// Bad
var x = "Line 1 \
Line 2";
// Good
var x = "Line 1\n" +
"Line 2";