码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript基础JavaScript的常用编码惯例(007)

时间:2014-09-12 23:16:24      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   使用   java   ar   strong   for   div   

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

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则是私有的方法。 

 

JavaScript基础JavaScript的常用编码惯例(007)

标签:style   blog   io   使用   java   ar   strong   for   div   

原文地址:http://www.cnblogs.com/Bryran/p/3969159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!