2012-01-02 12 views
3

私のjavascriptファイルを読んでいて、2つの質問が私の頭に浮かんだ:javascript:グローバル変数に関するテキストメッセージ?

1)私は使っているテキストの26の文字列を持っていて、それらのいくつかはいくつかの機能で繰り返されている。 だから私はそれらをすべてグローバルヴァースとして宣言することは良い考えですか?

2)私のコードの95%がjavascriptで、残りはJQueryです。論理は非常に単純です。すべてのJSコードをJQueryに変換する価値はありますか?

サンプルコード:

email = document.getElementById('email').value; 
    document.myForm.submit(); 
+2

jqueryはjavascriptであり、グローバル変数を宣言することは、デザインで必要とされるまではお勧めできません。 – Rafay

+1

可能であれば、5%jQueryコードをPlain JavaScriptに変更することをお勧めします。通常のコードと一緒にライブラリの読み込み全体の負荷を軽減します。そのほとんどは、使用したり必要としない関数です。 –

+0

まあ、私はdivや.showや.hideのようないくつかのJQuery関数を使っています。また、私はJavaScriptがJQueryよりも速くて良いとは知らなかった。私はJQueryがブラウザ間の互換性に優れていると言いました。私はFFとIEをサポートする必要があります。 – ThiagoPonte

答えて

4

通常は定数変数を1つの場所にグループ化することをお勧めします。これらの変数は重複せずに1回のみ定義され、見やすく変更が容易です。

ただし、辞書を1つのオブジェクトまたはモジュールにグループ化することをお勧めします。これにより、グローバル名前空間の混乱が減り、変数が接続されていることが示され、よりうまく反復処理して操作できるようになります(そうしたい場合)。 x1、x2、...、xn変数を持つ代わりに配列を使うのと同じ理由があります。

//setting up the strings 
var strings = { 
    //string id : string value 
    'a' : 'a string', 
    'b' : 'another string' 
}; 

//using the strings 
console.log(strings.a); 
console.log(strings.['a']); 

また、jQueryのは、単にJavaScriptライブラリです。あなたが私たちに与えた情報を元に、コードを変換しようとする理由が実際にはわかりません。

+0

私はJavaScriptの初心者ですが、この変更について私の上司にオブジェクトの使用を話します。 – ThiagoPonte

2

1)あなたは、文字列はどこにでも、あなたがすべての文字列を格納している唯一のグローバルなVARを定義することがより良いかもしれないことをアクセスする必要がある場合には(それがarrayまたはobject可能性があり)そうでなければ、クロージャー内でそれらの関数をグループ化すること(いわゆる「即時自己実行関数」)、そして作成されたスコープ内のその配列(またはオブジェクト)を宣言することを検討してください。例えば

(function() { 
    var hastrings = { 
     'string1' : 'value1', 
     'string2' : 'value2', 
     ... 
    }; 

    /* all functions using common strings here */ 

}()); 

2)それは異なります。あなたはjQueryのは、専用の代わりに構築使って書くとどのように多くのLOCを考慮するが、あなたは常にjQueryを呼び出しますので、いくつかの命令は、(ストレートJavaScriptを使用して、よりパフォーマンスであり得ることを忘れてはなりません関数)。だから決定的な答えはありません。あなたのコードが何をしているか、それがどれほど複雑で、どのように構造化しているかによって異なります。

2

1)あなたのシナリオによれば、グローバルとして宣言することができます。グローバル変数はどこでもハードコーディングするよりも書く方が良いです。

2)jQueryのように、JavaScriptを保つために優れているJavaScriptのフレームワーク(アヤックス)

document.getElementById('email') is faster than $("#email") 

で、あなたはjQueryの、最小限の労力でやっている任意の複雑なコードを持っている場合、あなたはそれらの中で使うことができます参照してください場所。

関連する問題