原网页:http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html
简介:
所谓"编程风格"(programming style),指的是编写代码的样式规则。"编程风格"的选择不应该基于个人爱好、熟悉程度、打字工作量等因素,而要考虑如何尽量使代码清晰易读、减少出错。是一种能够清晰表达你的意图的风格。
规则1:表示区块起首的大括号,不要另起一行。
绝大多数的编程语言,都用大括号({})表示区块(block)。起首的大括号的位置,有许多不同的写法。
最流行的有两种。一种是起首的大括号另起一行,另一种是起首的大括号跟在关键字的后面。
一般来说,这两种写法都可以接受。但是,Javascript要使用后一种,因为Javascript会自动添加句末的分号,导致一些难以察觉的错误。
规则2:调用函数的时候,函数名与左括号之间没有空格;函数名与参数序列之间,没有空格;所有其他语法元素与左括号之间,都有一个空格。
圆括号(parentheses)在Javascript中有两种作用,一种表示调用函数,另一种表示不同的值的组合(grouping)。我们可以用空格,区分这两种不同的括号。
规则3:不要省略句末的分号。
分号表示语句的结束。大多数情况下,如果你省略了句尾的分号,Javascript会自动添加。但如果下一行的第一个字元(token)是下面这五个字符之一,Javascript将不对上一行句尾添加分号:"("、"["、"/"、"+"和"-"。
规则4:不要使用with语句。
with可以减少代码的书写,但是会造成混淆。
with (o) {
foo = bar;
}
//上面的代码,可以有四种运行结果:取决于不同的变量是否有定义
o.foo = bar;
o.foo = o.bar;
foo = bar;
foo = o.bar;
规则5:不要使用"相等"(==)运算符,只使用"严格相等"(===)运算符。
Javascript有两个表示"相等"的运算符:"相等"(==)和"严格相等"(===)。因为"相等"运算符会自动转换变量类型,造成很多意想不到的情况:
0 == ''// true
1 == true // true
2 == true // false
0 == '0' // true
false == 'false' // false
false == '0' // true
" \t\r\n " == 0 // true
规则6:不要将不同目的的语句,合并成一行。
有些程序员追求简洁,喜欢合并不同目的的语句。
//原来的语句是
a = b;
if (a) {...}
//写成下面这样:
if (a = b) {...}
//可读性大打折扣,而且会造成误读,让别人误以为这行代码的意思是:
if (a === b){...}
规则7:所有变量声明都放在函数的头部(适用于var)。
Javascript会自动将变量声明"提升"(hoist)到代码块(block)的头部。为了避免可能出现的问题,不如把变量声明都放在代码块的头部。
规则8:所有函数都在使用之前定义(本条不讨论)。
规则9:避免使用全局变量;如果不得不使用,用大写字母表示变量名,比如UPPER_CASE(貌似闭包可以解决命名污染)。
全局变量对于任何一个代码块,都是可读可写。这对代码的模块化和重复使用,非常不利。
规则10:不要使用自增(++)和自减(--)运算符,用+=和-=代替。