<a target="_blank"></a>
縮進
兩個空格,無需更長的縮進,無需tab縮進:google、npm、node.js、idiomatic
tab縮進:jquery
4個空格:crockford
參數和表達式之間的空格
使用緊湊型風格:google、npm、node.js
project.myclass = function(arg1, arg2) {
過多地使用空格:idiomatic, jquery
for ( i = 0; i < length; i++ ) {
沒有發表意見:crockford
大部分指南中,都提醒開發者不要在語句結尾處有任何的空格。
代碼行長度
最多80個字元:google、npm、node.js、crockford(當在代碼塊中,除了2個空格外的其他縮進允許将函數參數與首個函數參數的位置對齊。另一種選擇是當自動換行時使用4個空格縮進,而不是2個。)
沒有發表意見:jquery、idiomatic
分号
始終使用分号,不依賴于隐式插入:google、node.js、crockford
在某些情況下不要使用expect:npm
注釋
遵循jsdoc約定:google、idiomatic
沒有發表意見:npm、node.js、jquery、crockford
引号
推薦單引号:google、node.js
雙引号:jquery
沒有發表意見:npm、idiomatic、crockford
變量聲明
一次聲明一個,不使用逗号:node.js
var foo = ''; var bar = '';
一次聲明多個,在行結束處使用逗号分隔:idiomatic、jquery
var foo = "", bar = "", quux;
在行開始處使用逗号:npm
沒有發表意見:google、crockford
大括号
在同一行使用左大括号:google、npm、node.js、idiomatic、 jquery、crockford
function thisisblock(){
npm指南中指出,隻在代碼塊需要包含下一行時使用大括号,否則不使用。
全局變量
不要使用全局變量:google、crockford(谷歌表示,全局變量命名沖突難以調試,并可能在兩個項目進行正整合時出現一些棘手的問題。為了便于共享公用的javascript代碼,需要制定公約來避免沖突發生。crockford認為不應該使用隐式全局變量。)
沒有發表意見:idiomatic、jquery、npm、node.js
變量命名
開始的第一個單詞小寫,之後的所有單詞首字母大寫:google、npm、node.js、idiomatic
var foo = ""; var fooname = "";
常量命名
使用大寫字母:google、npm、node.js
var cons = 'value';
沒有發表意見:jquery、idiomatic、crockford
函數命名
開始的第一個單詞小寫,之後的所有單詞首字母大寫(駝峰式):google、npm、idiomatic、node.js(推薦使用長的、具描述性的函數名)
function verylongoperationname function short()..
關鍵字形式的函數命名:
function isready() function setname() function getname()
沒有發表意見:jquery、crockford
陣列命名
使用複數形式:idiomatic
var documents = [];
沒有發表意見:google、jquery、npm、node.js、crockford
對象和類命名
使用如下形式:google、npm、node.js
var thisisobject = new date;
其他命名
針對長檔案名和配置鍵使用all-lower-hyphen-css-case形式:npm
下面根據本文上面每個分類下的第一種風格來建立一個.jshintrc檔案。你可以将它放到項目中根目錄中,jshint-avare代碼編輯器将會按照它來統一項目中的所有代碼風格。
{ "camelcase" : true, "indent": 2, "undef": true, "quotmark": single, "maxlen": 80, "trailing": true, "curly": true }
此外,你應該将下面的頭添加到你的javascript檔案中。
/* jshint browser:true, jquery:true */
在node.js檔案中你應該添加:
/*jshint node:true */
還可以在各種javascript檔案中添加下面的聲明:
'use strict';
這将影響jshint和你的javascript引擎,可能不那麼相容,但是javascript将會運作得更快。
如果你想確定所有的js代碼與.jshintrc中定義的風格保持一緻,你可以将下面的内容添加到你的.git/hooks/pre-commit檔案中,當你試圖送出任何新修改的檔案到項目時會自動執行風格檢查。
#!/bin/bash # pre-commit git hook to run jshint on javascript files. # # if you absolutely must commit without testing, # use: git commit --no-verify filenames=($(git diff --cached --name-only head)) which jshint &> /dev/null if [ $? -ne 0 ]; then echo "error: jshint not found" echo "install with: sudo npm install -g jshint" exit 1 fi for i in "${filenames[@]}" do if [[ $i =~ \.js$ ]]; then echo jshint $i jshint $i if [ $? -ne 0 ]; then exit 1 fi fi done
最後祝大家編碼愉快!
原文釋出時間為:2013-07-12
本文來自雲栖社群合作夥伴“linux中國”