2011-12-26 1 views
6

私はjQuery "jQueryLog"用のプラグインを開発して、チェーンセレクタと戻り値のデバッグを可能にしています。あなたがそれをチェックしたい場合は、それを行うことができますhereJavascriptのベストプラクティス、関数/変数宣言の連鎖にカンマを使用する理由

これはすでに2番目のバージョンです。最初のバージョンは実際には編集されたjQueryでしたが、内部的な仕組みを理解するためにjQueryを読まなければなりませんでした。質問がそこから来ている:

var jQuery = function(selector, context) { 
     // The jQuery object is actually just the init constructor 'enhanced' 
     return new jQuery.fn.init(selector, context, rootjQuery); 
    }, 

    // Map over jQuery in case of overwrite 
    _jQuery = window.jQuery, 

    // Map over the $ in case of overwrite 
    _$ = window.$, 

    // A central reference to the root jQuery(document) 
    rootjQuery, 

    // A simple way to check for HTML strings or ID strings 
    // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 
    quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, 
    (...) 

は、使用して宣言のチェーン+「コンマ」だけではなく使用するための任意の大きな理由があります:

function jQuery (selector, context) { ... } 

var _jQuery = window.jQuery; 
var _$ = window.$; 
etc... 

私はここを参照してください唯一の理由があるためminifierは、切り捨てられないリテラルを少なくします。しかし、他の理由はありますか?

+1

私は「VAR」の上にコンマを使用すると、これまで持っていることを知らないこの[リンク](http://stackoverflow.com/questions/3781406/javascript-variable-definition-commas-vs-semicolons) –

+2

を読みます業界のベストプラクティスと宣言されました。せいぜい、これは文体的な好みです。私はベストプラクティスとしてこれを提唱したあなたが提供できるどんな記事も読むことに興味があります。 –

+0

@Ronakなぜあなたはそれが重複した質問だと言わないのですか? – kojiro

答えて

5

関数スコープ内のすべての変数を定義する前に使用されていないことを確認しながら、すべての変数を保持するほうが簡単です。

JavaScript Patterns(2010年9月、オライリー)で、Stoyan Stefanovのは単一varパターンそれを呼び出す:

JavaScriptが 機能の任意の場所に複数のvarステートメントを持つことができますし、関数の先頭に変数が宣言されているかのようにすべて動作します。この現象は巻上げと呼ばれます。 ... 1つのvarステートメントを使用し、カンマで区切られた複数の変数を宣言します。 変数を宣言した時点で、変数の初期値を に初期化することをお勧めします。これにより論理エラーを防ぐことができます( 未初期化変数と宣言された変数はすべて undefinedの値で初期化されます)。また、コードの可読性も向上します。

関連する問題