web-dev-qa-db-ja.com

JSLintは、アンダースコアの接頭辞付き変数名に「予期しないダングリング」文字を​​報告します

一部の人々は、変数が「プライベート」であること、そのようなプライバシーがフィクションであることを暗示するために先頭のアンダースコアの存在を考慮することを知っています。

構築中のWebサイトでGoogle Analyticsを使用しています。 「_gaq」などのGAの変数を参照します。

私は自分のJSコードを100%JSLintクリーンにすることを試みています(コーディングスタイルには信心していませんので、Crockford氏の弁護士に相談します)。そうは言っても、Googleの変数名については何もできません...ですから、100%の「クリーン」を得ることができないと思います。

メッセージを誤解した場合に備えてここに投稿し、JSLintの慣行に準拠するために何かを行うことができます。

73
Zhami

ああ、私はこれを処理しました...アンダースコアの接頭辞付き変数を使用するステートメントをJSLintコマンドでラップして、このクラスのエラーを無効にしてから再度有効にします。

/*jslint nomen: true*/
... statement(s) with _var ...
/*jslint nomen: false*/
72
Zhami

これを処理する最良の方法は、「識別子のぶら下がり_を許容」(nomen)オプションを有効にすることです。詳細については、 http://www.jslint.com/lint.html を参照してください...

51
scruffian

JSLintは単なるコード品質ツールです。テストに完全に合格しないということは、コードが悪いということではありません。それは単に、その作成者によって定められたすべての規則に従わないことを意味します。 JSLintは非常に良い提案をしますが、特にそれに対してテストされていない他の誰かのライブラリを使用する場合、それらすべてを常に満たすことはできません。意味のないメタコメントでソースコードを散らかすのではなく、特定のコードで使用するのは理にかなっていないように見えるので、「識別子のぶら下がり_を許可しない」オプションを無効にしてコードをチェックする必要があります。

15
user422129

Node.jsでJSLIntを使用します。この機能を回避するために--nomenフラグを渡すことができます

jslint --nomen myfile.js 
8
Jaseem