论坛首页 Web前端技术论坛

JavaScript代码规范总结

浏览 1777 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2016-03-03  

1 - BoundOrAssignedEvalOrArguments

描述

"eval" and "arguments" must not be bound or assigned

严重性

CRITICAL

错误现象示例

eval = 17;
arguments++; 
++eval; 
var obj = { set p(arguments) { } }; 
var eval; 
try { } catch (arguments) { } 

修复建议

//不要修改eval和arguments

2 - FunctionDeclarationsWithinBlocks

描述

Do not use function declarations within blocks

严重性

BLOCKER

错误现象示例

if(x){
  function foo() {}
} 

修复建议

if(x){
  var foo = function() {};
} 

3 - DuplicatePropertyName

描述

Duplicate property names not allowed in object literals

严重性

CRITICAL

错误现象示例

vardata ={
'key': 'value',
'key': 'value',
}

修复建议

vardata ={
'key1': 'value',
'key2': 'value',
}

4 - DuplicateFunctionArgument

描述

Function argument names should be unique

严重性

CRITICAL

错误现象示例

function compute(a, a, c) {}

修复建议

function compute(a, b, c) {}

5 - NestedIfDepth

描述

Avoid deeply nested if statements

严重性

MINOR

错误现象示例

function sayHello() {
 if (true) {
  if (true) {
   if (true) {
    if (true) { // Non-Compliant
     return;
    } else {
     return;
    }
   } else if (true) { // Compliant
    if (true) { // Non-Compliant
     return;
    }
   }
  }
 }
}

修复建议

//尽量减少if语句的嵌套层次,最多不要超过5层

6 - ConstructorFunctionsForSideEffects

描述

Avoid use of constructor functions for side-effects

严重性

MINOR

错误现象示例

new 
MyConstructor();

修复建议

var something
 = new MyConstructor();

7 - Eval

描述

Avoid use of eval

严重性

MINOR

错误现象示例

ar myCode = 
'alert('Howdy?');';eval(myCode); 

修复建议

//避免使用eval函数,如果在页面上有使用eval()函数,就需要特别正确的方式保证它正常执行。

8 - CommentedCode

描述

Sections of code should not be "commented out"

严重性

MINOR

错误现象示例

//isValid(element);

修复建议

//代码段不该被注释掉,无用代码应删除

9 - SingleQuote

描述

Use single quote for string literals

严重性

MINOR

错误现象示例

var firstParameter
 = something;

修复建议

//使用单引号效率更高
var secondParameter 
= 'somethingElse';

10 - CurlyBraces

描述

Always use curly braces for if/else/for/while/do statements

严重性

MAJOR

错误现象示例

if (i> arr.length)
 continue;

修复建议

//if/else/for/while/do语句都应使用花括号
if (i> arr.length){
 continue;
}

11 - NonEmptyCaseWithoutBreak

描述

An unconditional break statement shall terminate every non-empty switch-clause

严重性

MAJOR

错误现象示例

switch (param) {
case 0:
doSomething();
case 1:
doOtherthing();
default: 
doSomethingElse();
}

修复建议

switch (param) {
case 0:
doSomething();
break;
case 1:
case 2:
doOtherthing();
break;
default: 
doSomethingElse();
break;
} 
//注意:空的case语句允许指定相同的行为

12 - FunctionDefinitionInsideLoop

描述

Avoid definition of functions inside loops

严重性

MAJOR

错误现象示例

var funs = [];
for (var i = 0; i < 13; i++) {
funs[i] = function() { 
return i;
};
}

修复建议

//不要在循环中定义函数,可以在循环外定义函数,然后在循环中调用,
//也可以将循环中的函数改为自执行的。
var funs = [];
for (var i = 0; i < 13; i++) {
funs[i] = (function(j) { 
return function(){
return j;
};
})(i);
}

13 - AssignmentWithinCondition

描述

Avoid doing assignments in the condition part of if/while/for statements

严重性

MAJOR

错误现象示例

if (dayNumber = getClickedDayNumber(dayInfo)) { 
alert('day number found : ' + dayNumber);
} 

修复建议

var value = someFunction();
if (value === fon
    
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics