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
一、变量、属性命名使用小驼峰命名法网络
正确命名:函数
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'); }
不建议书写:
if (true) 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开发指南》