私はC++とJavaすべてが安全で美しい場所でプログラミングをしてきました。コンパイラーは、私が迷ったことがないかどうかを常に確認してくれました。もちろん、大学でみんなが少しPerlをやっていましたが、私はしませんでした吸い込まないでください。最近の子供たちは、PHP=バックエンドとJavascriptを前面に出しています。ヒップになるために、私は同じことをしています(Web開発の場合)。実行し続ける問題intoは、誤ってJavascriptの通常の変数の前にドル記号($)を追加します。もちろん、jQueryオブジェクトでよく使用される合法的な構文であるため、誰も何も言いません。
このドル記号の混乱をとらえるデバッグツールや開発トリックはありますか?あなたはしばしば同じ間違いを犯しますか、そしてどのようにそれを感情的に扱いますか? Chrome開発ツールは、これが常にJavascriptエラーであるとは限りません。私は開発にPhpStormとEmacsを使用していますが、Emacsは私の愚かさを理解していません。それにもかかわらず私についてそれについて。
この質問がばかげていると思うなら、私はあなたが正しいと思います。しかし、私たちは変数の前にドル記号がある世界に住んでいます。そのような世界では、何もばかげたことはありません。
変数で$
を使用することに問題はありません。すべての変数に対してわざとやるつもりはありませんが、それでも有効な構文です。 jQueryは、$
を変数名として使用する例の1つです。 「Chrome開発ツールは、これが常にJavascriptエラーであるとは限らない」理由もここにあります。そもそもエラーがないからです。
あなたが次のようなコードを書くことを恐れているなら:
var demo = function demo() {
var a = 123;
...
$a = 456; // A new variable is created in global scope.
}
次に、 jsLint 、 jsHint または Google Closure Linter などのスタイルチェッカーを使用する必要があります。どれ?選択はあなた次第です。それを助けるために、ここにいくつかのメモがあります:
Google Closure Linterは Google JavaScript Style Guide に従い、巧妙に行われることが知られています。 JavaScriptまたはその他の 6つの他の言語 のよく知られたスタイルを使用することは良い考えです。コードを共有したり、新しい開発者を雇ったりすると、彼らはすでにこのスタイルに慣れている可能性があります。
多くの開発者は、ダグラスクロックフォードスタイルにも精通しています。このスタイルは JavaScript:The Good Parts で詳細に説明されています。JavaScriptを使用するすべての人が購入する価値のある本です。
JsHintについては、使用されている規則を実際に見つけることができず、Webサイト自体はその主題について話すことを避けているようです。多分私は何かを逃した。
JsLintとjsHintの両方 サポートされています PhpStormによる。これは、Google Closure Linterの 同様に です。
Google Closure Linterは 一連のツール の1つです。既に Google Closure Compiler または Google Closure Library を使用している場合は、他のツールよりもClosure Linterを選択することをお勧めします。
jsLintは厳格であることが知られています。 jsHintはより寛容ですが、これは常に良いことではありません。たとえば、jsLintをjsHintにフォークする理由の1つは 記事 で説明されています。これは、jsLintではエラーを生成するがjsHintではエラーを生成しない不良コードを示しています。
/*global jQuery */
// Example taken from jQuery 1.4.2 source
jQuery.extend({
/* ... */
isEmptyObject: function( obj ) {
for ( var name in obj ) {
return false;
}
return true;
}
/* ... */
});
JavaScriptにはブロックスコープがあるように見えますが、そうではないため、コードは不正です。 JavaScript:良い部分、p。 102、付録A:ひどい部分、範囲。言い換えると、言語を知らずにコードを見ると、name
はループの外には表示されず、表示されたままになります。
Google Closure Linterについては、jsLintとjsHintの中間にあると思いますが、それをサポートするのに十分な情報がありません。
JsHintは避けます。許容範囲が広すぎるため、他のリンターが検出する可能性のあるバグを見つけることができません。使用されているスタイルガイドが見つかりません。
JsLintとGoogle Closure Linterのどちらを選択するかは明らかではありません。どちらもエキスパートが作成し、どちらも厳密に記述されたスタイルガイドに従っており、すでに何千人もの開発者が使用しています。しばらくの間両方を使用してから、より実用的な方を選択してください。