Javascript 编码规范

   前阵子同个小伙伴一块儿编码,两我的的 Javascript 代码风格各异,混在一块儿着实难看。因而我从网络和书籍收集整理了部分编码规范 资料,总结以下

1、tab缩进

   tab键用四个空格代替,这是为了保证在全部环境下得到一致展示
 

2、分号

   老是使用分号,虽然 Javascript 支持换行做为语句界限,自动在语句末尾添加分号。可是在 "(" ,"[" ,"/" ,"+" ,"-" 后面,Javascript将不对上一行句尾添加分号
 

3、括号

   一、大括号跟着关键字后面
 
   正确书写:
  function test() {
      ...
  }

    错误书写:javascript

  function test()
  {
       ...
  }

 

  二、调用函数时函数名和左括号以前没有空格,声明函数时函数名与参数之间没有空格,匿名函数'function'与左括号之间没有空格,其它状况,其它语法元素和左括号之间有一个空格html

   正确书写:java

  test(a, b);
  function test(a, b) {
      ...
  }
  Test.prototype.getName = function() {
      ...
  };

    错误书写:git

  test (a, b);
  return(a+b);
  if(a === b) {
      ...
  }
  function test (a, b) {
      ...
  }
  Test.prototype.getName = function () {
      ...
  };

 

4、引号
  Javascript中单引号和双引号没有什么语义区别,BYVoid在《Node.js开发指南》中建议使用单引号,“由于JSON、XML都规定了必须是双引号,这样便于无转义地直接引用”

github

5、变量、属性、常量、类

  一、变量、属性命名使用小驼峰命名法网络

   正确命名:函数

    var testName = 'test';

   错误命名:this

    var TestName = 'test';
    var test_name = 'test';

  

  二、确保每一个语句定义一个变量,不用逗号隔开

   正确命名:google

    var test;
    var temp;

    错误命名:编码

    var test, temp;

  

  三、避免使用全局变量,使用 "var" 定义变量,由于没写 "var" 隐式定义是全局变量,可能会和现有变量冲突,也不明白变量的做用域是什么。若使用全局变量用大写字母、单词以"_"分割表示,好比 "TEST_NAME = 'test'"

 

  四、常量也使用全大写、单词以 "_" 分割命名方法,好比 "TEST_URL = 'http://www.test.com/test'"

  五、普通的函数命名使用小驼峰命名,可是类要用大驼峰命名法;规定函数名与参数以前无空格,参数表和大括号以前要有一个空格,并在同一行

   正确书写:

    function Test() {
        this.name = 'test';
    }

    function testFunction() {
        return 'test';
    }

   错误书写:

    function test_function() {
        return 'test';
    }

    function test() {
        this.name = 'test';
    }

6、等号
  使用 '===' 而不是 '==',由于 '==' 包含隐式转换,会出现预想不到的结果

    var num1 = 1;
    var num2 = '1';
    if (num1 == num2) {
        console.log('true');
    } else {
        console.log('false');
    }

   以上代码将输出 'true',若把 '==' 改成 '===',输出 'false'

 

7、区块
  建议老是使用大括号表示块

   建议书写:

    if (true) {
        console.log('true');
    }

   不建议书写:

    iftrue)
        console.log('true');

 

8、对象定义
  成员函数经过原型定义,属性在构造函数内定义

   正确书写:

    function Person(name) {
        this.name = name;
        this.friends = ['Tom', 'Jack', 'Mike']; 
    }
    Person.prototype.output = function() {
        console.log(this.friends);
    };

   错误书写:

    function Person(name) {
        this.name = name;
        this.output = function() {
            console.log(this.friends);
        };
    }
    Person.prototype.friends = ['Tom', 'Jack', 'Mike'];

 

9、继承
  不推荐继承,若须要继承用成熟的类库继承

 

  有什么建议或者有什么错误,欢迎指出!

 

参考资料

一、http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html

二、http://www.cnblogs.com/hustskyking/p/javascript-spec.html

三、http://alloyteam.github.io/JX/doc/specification/google-javascript.xml

四、《Node.js开发指南》

相关文章
相关标签/搜索