zoukankan      html  css  js  c++  java
  • JavaScript基础JavaScript的常用编码惯例(007)

    采用一定的编码惯例,可以使得项目中的代码提到较高的一致性,可读性和可预测性。

    1.缩进
    缩 进可以提高代码的可读性。不过错误的缩进也可能导致代码的误读。有人认为缩进应该使用tab,另外的一些人主张采用4个空格。4个空格的缩进目前是主流的 做法。简单地说,对于所有花括号中的代码(包括do, while, for, for-in, if, switch, 以及对象声明中的对象属性)都应该缩进4个空格。下面是一个缩进的例子:

    function outer(a, b) {
    var c = 1, d = 2, inner; if (a > b) { inner = function () { return { r: c - d }; }; } else { inner = function () { return { r: c + d }; }; } return inner; }

     2. 花括号
      对于循环体和if语句的内容只有一行的时候,花括号是可以省略的,但一个好的习惯应该总是加上花括号:

      // bad practice
     for (var i = 0; i < 10; i += 1)
        alert(i);
        alert(i + " is " + (i % 2 ? "odd" : "even"));
    

    所以我们建议总是加上花括号:

    for (var i = 0; i < 10; i += 1) {
        alert(i);
    }
    

     对于if语句来说也是这样的:

     // bad
    if (true)
        alert(1);
    else
        alert(2);
    
    
    // better
    if (true) {
        alert(1);
    } else {
        alert(2);
    }
    

    3. 左边花括号的位置
    有人喜欢把左边花括号放在与上一行,有人喜欢另开一行:

    if (true) {
        alert("It's TRUE!");
    }
    //or:
    if (true)
    {
        alert("It's TRUE!");
    }
    

     上面的代码都没有任何问题,两种形式可以按个人喜好任选一种。但如果函数的返回值是一个对象,就要小心了:// warning: unexpected return value

    function func() {
        return
        {
            name: "Batman"
        };
    }
    

     如果你期望上面的代码能返回一个对象,那结果可能会出乎意料。因为上面的函数返回的是undefined。因为没有加分号的return对于JavaScript解释器来说看起来是这样的:// warning: unexpected return value

    function func() {
          return undefined;
          // unreachable code follows...
          {
              name: "Batman"
          };
    }
    

     所以,我们应该总是把第一个花括号放到上一行的结束处:

    function func() {
        return {
            name: "Batman"
        };
    }
    

     4. 空格
    空格应该让代码更易读,所以应该放置空格的地方有很多:
       在for循环语句中里的分号后面: for (var i = 0; i < 10; i += 1) {...}
       for语句要初始化多个变量时也是如此:for (var i = 0, max = 10;i < max; i += 1) {...}
       数组定义时的逗号后面:var a = [1, 2, 3];
       定义对象属性的冒号后面和逗号后面:var o = {a: 1, b: 2};
       函数参数列表中的逗号后面: myFunc(a, b, c)
       函数声名中的花括号前面: function myFunc() {}
       当声名匿名函数时,function关键字后面:var myFunc = function () {};

    总之,空格应该让代码能呼吸:

    // generous and consistent spacing
    // makes the code easier to read
    // allowing it to "breathe"
    var d = 0,
        a = b + 1;
    if (a && b && c) {
        d = a % c;
        a += d;
    }
    
    // antipattern
    // missing or inconsistent spaces
    // make the code confusing
    var d= 0,
        a =b+1;
    if (a&& b&&c) {
    d=a %c;
        a+= d;
    }
    

     5. 构造函数的函数名要大写首字母
    JavaScript没有“类”的概念,但可以声名能用new调用的构造函数:

    var adam = new Person();

    这种构造函数不象Java或C,要放在类的定义中,因此它和其它的函数看起来是一样的。要区分构造函数,可以把函数名的首字母大写:function MyConstructor() {...}

    function myFunction() {...}
    

     后面我们还会介绍如何让一个函数用起来时表现得像个构造函数(而不是一般函数)。但通过首字母大写,可以有效区别它们。

    6. 区分标识符中的单词

    对于函数名中的单词,应该用驼峰式(camel case)的大小写。如:myFunction(),calculateArea() 以及 getFirstName()。
    对于变量,或是对象的属性,则应该用下划线的形式:如:first_name, favorite_bands, old_company_name。
    对于常量,应该用全大写的形式:

    // precious constants, please don't touch
    var PI = 3.14,
        MAX_WIDTH = 800;
    

     对于对象中的私有属性和方法,则在它们前面加上下划线:

    var person = {
        getName: function () {
            return this._getFirst() + ' ' + this._getLast();
        },
        _getFirst: function () {
            // ...
        },
        _getLast: function () {
            // ...
        }
    

    在上面的代码中,getName没有加下划线,意思是public的方法,而加了下划线的_getFirst和_getLast则是私有的方法。 

  • 相关阅读:
    必须转载 PHP & memcached 太精彩了,看一遍就能入门
    SYSID 来指定当前system
    How to increase the JES2 spool size
    JOBPARM SYSAFF的用处
    使用多Volume来创建一个dataset
    如何解决db2nodes.cfg line number “1”, Reason code “10”
    epdf macro to remove comments
    如何停止重复的job
    mysql数值类型
    (九)solr实现autocomplete功能
  • 原文地址:https://www.cnblogs.com/Bryran/p/3969159.html
Copyright © 2011-2022 走看看