上传者: nicky_hb 
                                    |
                                    上传时间: 2025-10-22 12:58:43
                                    |
                                    文件大小: 115KB
                                    |
                                    文件类型: DOC
                                
                            
                                
                            
                                ### JavaScript编码规范详解
#### 一、前言
本文档主要介绍了JavaScript的编码规范,旨在通过统一的编码标准来提高代码的可读性和可维护性。文档参考了百度fex-team团队制定的相关规范,适用于所有使用JavaScript进行开发的项目。
#### 二、代码风格
##### 2.1 文件
- **编码格式**:所有的JavaScript文件应采用无BOM的UTF-8编码。UTF-8编码可以确保文件在全球范围内的一致性和兼容性。
- **文件结束**:每个文件的末尾应保留一个空行,这有助于某些编辑器正确地显示文件结尾,并且在进行版本控制时能够更好地处理文件变更。
##### 2.2 结构
###### 2.2.1 缩进
- **通用规则**:使用两个空格作为每一级的缩进,这样既简洁又易于阅读。
- **特殊情况**:`switch`语句下的`case`和`default`子句需额外增加一级缩进。例如:
  ```javascript
  switch (variable) {
      case '1':
          // do something
          break;
      case '2':
          // do something
          break;
      default:
          // do something
  }
  ```
  这样的缩进方式使得每个`case`或`default`分支更加清晰,便于理解逻辑结构。
  
  
  **错误示例**:
  
  ```javascript
  switch (variable) {
  case '1':  // 缩进错误
      // do something
      break;
  case '2':  // 缩进错误
      // do something
      break;
  default:   // 缩进错误
      // do something
  }
  ```
  此种缩进方式会降低代码的可读性。
###### 2.2.2 空格
- **运算符两侧**:二元运算符两侧必须有一个空格,而一元运算符与操作对象之间不允许有空格。
  - **正确示例**:
    
    ```javascript
    var a = !arr.length;
    a++;
    a = b + c;
    ```
    
  - **错误示例**:
    
    ```javascript
    var a =! arr.length;
    a ++;
    a=b+c;
    ```
    
- **代码块起始**:用作代码块起始的左花括号`{`前面必须有一个空格。
  - **正确示例**:
    
    ```javascript
    if (condition) {}
    while (condition) {}
    function funcName() {}
    ```
    
  - **错误示例**:
    
    ```javascript
    if (condition){}
    while (condition){}
    function funcName(){}
    ```
    
- **关键字后空格**:`if`、`else`、`for`、`while`、`function`、`switch`、`do`、`try`、`catch`、`finally`等关键字后面必须有一个空格。
  - **正确示例**:
    
    ```javascript
    if (condition) {}
    while (condition) {}
    (function () {})();
    ```
    
  - **错误示例**:
    
    ```javascript
    if(condition) {}
    while(condition) {}
    (function() {})();
    ```
    
- **对象属性冒号空格**:在对象创建时,属性中的`:`之后必须有空格,`:`之前不允许有空格。
  - **正确示例**:
    
    ```javascript
    var obj = {
        a: 1,
        b: 2,
        c: 3
    };
    ```
    
  - **错误示例**:
    
    ```javascript
    var obj = {
        a : 1,
        b:2,
        c :3
    };
    ```
    
- **函数名与括号间空格**:函数声明、具名函数表达式、函数调用中,函数名和`(`之间不允许有空格。
  - **正确示例**:
    
    ```javascript
    function funcName() {}
    var funcName = function funcName() {};
    funcName();
    ```
    
  - **错误示例**:
    
    ```javascript
    function funcName () {}
    var funcName = function funcName () {};
    funcName ();
    ```
    
- **逗号和分号前后的空格**:逗号`,`前后不允许有空格,而分号`;`前不允许有空格。
  - **正确示例**:
    
    ```javascript
    callFunc(a, b);
    ```
    
  - **错误示例**:
    
    ```javascript
    callFunc(a , b) ;
    ```
    
- **括号内空格**:在函数调用、函数声明、括号表达式、属性访问、`if`/`for`/`while`/`switch`/`catch`等语句中,括号内的空格需要遵循特定的规则。
  - **正确示例**:
    
    ```javascript
    callFunc(param1, param2, param3);
    save(this.list[this.indexes[i]]);
    needIncream && (variable += increament);
    if (num > list.length) {}
    while (len--) {}
    ```
    
  - **错误示例**:
    
    ```javascript
    callFunc( param1, param2, param3 );
    save( this.list[ this.indexes[ i ] ] );
    needIncreament && ( variable += increament );
    if ( num > list.length ) {}
    while ( len-- ) {}
    ```
    
- **单行声明数组与对象的空格**:单行声明的数组与对象,如果包含元素,`{}`和`[]`内紧贴括号部分不允许包含空格。
  - **正确示例**:
    
    ```javascript
    var arr1 = [1, 2, 3];
    var obj1 = {a: 1, b: 2, c: 3};
    ```
    
  - **错误示例**:
    
    ```javascript
    var arr1 = [ 1, 2, 3 ];
    var obj1 = { a: 1, b: 2, c: 3 };
    ```
    
这些规则不仅有助于提高代码的整洁度,还能减少因不一致的编码风格导致的潜在问题。遵循这些规范可以确保项目中的代码风格统一,易于维护。