Skip to content

Instantly share code, notes, and snippets.

@koba04
Last active December 12, 2015 03:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save koba04/4707606 to your computer and use it in GitHub Desktop.
Save koba04/4707606 to your computer and use it in GitHub Desktop.
.jshintrc memo

jshintの設定項目についてのメモ

Enforcing Options

name memo
bitwise ビット演算子を許可しない
camelcase CamelCaseとXXX_YYY_ZZZの形式を許可する
curly ループや条件分岐の{}を省略しない
eqeqeq ==ではなく===や!==など型も含めた厳密な比較を行う
forin for inには必ずhasOwnPropertyによるfilterをかける
immed ()を囲まない即時関数の呼び出しを禁止
indent インデントを指定。それ以外のインデントは禁止
latedef 定義する前に変数を使用することを禁止(巻き上げ)
newcap コンストラクタ関数は必ず先頭を大文字に。通常の関数は先頭を小文字に
noarg arguments.callerとarguments.calleeを禁止する
noempty 空のブロックを禁止する
nonew newの結果を代入したいことを禁止する(new Hoge()のように結果を変数に入れない状態)
plusplus インクリメントとデクリメントを禁止する
quotmark 文字列のクォートを''か""どちらかに統一する(trueかsingleかdoubleを指定)
regexp 正規表現に.を禁止する
undef 定義されていない変数の使用を禁止する
unused 使っていない変数の宣言を禁止する
strict 全ての関数でstrictモード "use strict"; が有効になっているかどうか。globalに定義することは許可されていない(globalstrict)
trailing 行末の余計なスペースを禁止する
maxparams 関数の引数を最大数を制限する(呼び出し側ではなく定義)
maxdepth スコープ内でのネストの深さの最大数を制限する
maxstatements 関数のstatementの数の最大数を制限する(関数は1としてカウントする)
maxcomplexity 循環的複雑度を制限する(http://ja.wikipedia.org/wiki/循環的複雑度)
maxlen 1行あたりの最大文字数を制限する

Relaxing Options

name memo
asi セミコロンなしを許可する
boss if (a = b)のような条件式での代入を許可する
debug debuggerの使用を許可する
eqnull == nullによる比較を許可する
es5 ECMAScript5によって追加されたget, setを許可する
esnext ES.nextで定義されているconstを許可する
evil evalの使用を許可する
expr 代入や関数呼び出しが期待されているところで式をかくことを許可する(例: function () { 1 + 2 })
funcscope ブロックスコープの外で変数が使われることを許可する(functionスコープ)
globalstrict グローバルスコープでuse strictすることを許可する
iterator __iterator__プロパティの使用を許可する(camelcaseにもひっかかる)
lastsemic 1行のブロックの場合、最後のセミコロンを省略することを許可する
laxbreak 区切り文字のない改行を許可する(例:if (a === b \n
laxcomma 先頭にコンマを付けるスタイルを許可する
loopfunc ループ内に関数を定義することを許可する
multistr 複数行のStringを許可する
onecase 1つだけの条件のswitchを許可する
proto __proto__プロパティの使用を許可する
regexdash エスケープしてない-が正規表現の文字クラス([])中の最後にあることを許可する
scripturl javascript:のような文字列を許可する
smarttabs tabとspaceのインデントが混在していることを許可する
shadow 同スコープ内で変数を再定義することを許可する
sub オブジェクトのプロパティの参照でドット表記が使える時でもobj['hoge']の表記で参照することを許可する
supernew new Objectやnew function(){}といった書き方も許可する
validthis コンストラクタ関数以外でのthisの呼び出しを許可する

Environments

name memo
browser ブラウザで定義されているグローバルな要素の使用を許可する
couch CouchDBで定義されているグローバルな要素の使用を許可する
devel consoleやalertなどのデバッグ関数の使用を許可する
dojo DojoToolkitで定義されているグローバルな要素の使用を許可する
jquery jQueryで定義されているグローバルな要素の使用を許可する
mootools MooToolsで定義されているグローバルな要素の使用を許可する
node nodeで定義されているグローバルな要素の使用を許可する
nonstandard escapeとunescape関数の使用を許可する
prototypejs prototype.jsで定義されているグローバルな要素の使用を許可する
rhino rhinoで定義されているグローバルな要素の使用を許可する
worker WebWorkerで定義されているグローバルな要素の使用を許可する
wsh WindowsScriptHostで定義されているグローバルな要素の使用を許可する
yui YUIで定義されているグローバルな要素の使用を許可する

Legacy

name memo
nomen 変数名の前後に_がついていることを許可しない
onevar 関数内には1つvarしか許可しない
passfail エラーが見つかった時点で処理を中止する
white Douglas Crockfordのコーディングスタイルに照らし合わせてチェックする(しかし、そのルールはThe Good Partsの本にはしっかりとは記載されていない..)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment