js的靈活性很是大,若是開發人員每一個人都按本身的習慣隨意編寫,js的代碼會很是混亂不堪。js程序員須要更強的自律性和規範,才能寫出易讀性,易維護的代碼。html
隨着前端mvc的崛起,前端的js代碼會更加龐大難以管理,若是沒有統一的規範,後期維護會比登天還難。前端
縮進
採用兩個空格縮進,在編輯器中設置tab爲兩個空格node
變量聲明程序員
用var聲明變量web
var assert = require('assert');
var fork = require('child_process').fork;
var net = require('net');編程
錯誤實例:json
var assert = require('assert')
, fork = require('child_process').fork
, net = require('net');數組
用字面量聲明方式mvc
var num = 123;
var aaa = {};
var arr = [];
var isAdmin = true;webstorm
避免使用:
var obj =new Object();
var arr = new Array();
var test =new String("");
var size = new Number();
不要在for循環等循環裏聲明var變量
首先var是函數做用域,在循環聲明之後只有等函數聲明週期結束這些資源纔會釋放
空格
在操做符先後須要加上空格,= 、% 、* 、- 、+ 先後都應該加一個空格
好比:var foo = 'bar' + baz;
錯誤實例:var foo='bar'+baz;
單雙引號的使用
在node中儘可能使用單引號,
var html = '<a href="http://cnodejs.org">CNode</a>';
在json中使用雙引號
分號
給表達式結尾加分號,儘管js會自動在行尾加上分號,可是會產生一些誤解
在編碼中,命名是重頭戲。好的命名可使代碼賞心悅目,具備良好的維護性。
變量命名
變量名採用小駝峯命名,單詞之間沒有任何符號如:
var adminUser = {}; var callNum = 2134323;
方法命名
也是採用小駝峯命名,與變量不一樣的是採用動詞或判斷行詞彙,如:
var getUser = function(){}; var isAdmin = function(){}; var findUser = function(){};
類命名
類名採用大駝峯,全部單詞首字母大寫,如:
function User{ }
常量命名
做爲常量,單詞全部字母大寫,用下劃線分割,如:
var PINK_COLOR = "PINK";
文件命名
命名文件時,儘可能使用下劃線分割單詞,好比child_process.js和string_decode.js
包名
在包名中儘可能不要包含js和node的字樣,應當適當短而且有意義
做用域
慎用with和eval(),容易引發做用域混亂
比較操做
儘可能使用===代替==,不然會遇到下面的狀況,
'0'==0;//true; ''==0;//true; '0'===''//false;
嚴格模式
在node後臺中儘可能全使用嚴格模式
'use strict';
對象和數組遍歷
數組遍歷使用普通for循環,避免使用for in對數組遍歷,對象的遍歷使用for in
sublime和webstorm都有JSLint,JSHint這樣的代碼質量工具,在配置文件中制定好模板規範便可
在版本控制工具中設置hook,在precommit的腳本中設置,若是代碼不符合標準,就沒法提交
深刻淺出nodejs
js祕密花園
js高級編程
若是文章對你有幫助,請去個人我的博客留個言吧! 個人博客