JavaScript:JSLintのオプションとして「識別子の先頭の_を許可しない」
-
03-07-2019 - |
質問
独自の JavaScriptフレームワークを書き始めたばかりで(学習のためだけに)、一部のプライベートメンバーの前に _ を付けました。 >
var _isFireBugEnabled = function () {
return (window.console && window.console.firebug);
};
Crockfordの JSLint (常に)に対してコードを実行したとき、推奨オプション
以降、識別子として_を使用しないことについて説明を受けました。
私の質問は、なぜJSLintは_を識別子として使用しないことに関して警告するのですか?
ここで見逃している副作用や影響はありますか?
PS。今スキャンできる限り、これは book に記載されていません。
解決
理由は、ダグラス・クロックフォードがJavascript *の約78%を嫌っているからです。多くの人が彼を少し厳格だと思っており、実際、多くのライブラリーは本番コードで主要なアンダースコアを使用しています。私はそれについてあまり間違っていないと思います。副作用はありません。
さらに、アンダースコアではなく「$」が「システム」用に取っておかれる記号でした。 ECMA仕様によるコード。
ECMA 262のセクション7.6から:
この標準は、1つの出発を指定します Unicodeで与えられた文法から 標準:ドル記号($)と アンダースコア(_)はどこでも使用できます 識別子で。ドル記号は 機械的にのみ使用するためのもの 生成されたコード。
*注:私はファセットになっています。彼は本当に約半分しか嫌いでなく、通常は正当な理由があります。私はここでクロックフォードに反対しますが、彼は通常非常に正しいです。
他のヒント
実際にこれについてCrockfordにメールしました。これは彼の応答でした:
私は_は システムコードの実装ではなく アプリケーションで使用されます。
私は彼にいくらか同意しません。私は、_を使用して、自分のクラスで本当にプライベートなメンバーにプレフィックスを付ける傾向があります。 GoogleのCajaには_の使用に関するいくつかのルールがありますが、説明内容に問題を引き起こすことはありません。