1

重複の可能性:
JavaScript で複数の変数を宣言する

JavaScript (および JS ライブラリ) で変数をリストすることに違いがあるかどうか疑問に思っていました。

var $this = $(this),
    $body = $("body"),
    $main-wrap = $("body > section.wrapper");

また

var $this = $(this);
var $body = $("body");
var $main-wrap = $("body > section.wrapper");

違いは表記だけだとずっと思っていました。最初の例は短く、おそらく実行が高速です。最近、私はいくつかのテストを行いましたが、今ではもうわかりません。誰でもこれをクリアできますか?

実行速度、結果、方法に違いはありますか?

4

2 に答える 2

4

それは単純な JavaScript 変数宣言だけの jQuery ではありません。

違いに関しては、1つもありません。取得できる唯一の速度向上は、複数の jQuery オブジェクトのスピンアップを停止し、さらに処理するために既存のオブジェクトを再参照することです。例えば

var body = $('body'),
    wrapper = body.children('section.wrapper');

JavaScript 変数定義: コンマとセミコロンも参照してください。

于 2012-11-07T13:25:48.880 に答える
0

jsLintvarを使い始めたとき、複数のステートメントを使用する習慣をやめました。それはいつもそれをキャッチし、カンマで区切った方が早いと言っていました。

これをさらに調べてみると、これに同意する多くの情報源があるようです。

jsLint #scopeから

関数ごとに 1 つの var ステートメントを使用することをお勧めします。

離れたリストから:

var ステートメントは、1 つ以上の変数を定義します。次のようなコードが表示されることがあります。

var image = document.getElementById("myImage");
var div = document.getElementById("myDiv");

このコードは、2 つの変数を連続して定義します。このパターンは、10 個以上の変数が連続している場合によく見られます。複数の var ステートメントをコンマ演算子を使用して 1 つに結合できるため、これを行うとコードのサイズが人為的に膨らみます。

var image = document.getElementById("myImage"),
div = document.getElementById("myDiv"); 

このコードは、2 つの変数も定義し、同じ初期化を提供します。ただし、別の var にかかる 3 バイトは節約できました。3 バイトは大したことではないように思えるかもしれませんが、現在余分な var ステートメントがある場所を何十箇所も見つけることができれば、節約は本当に積み重なる可能性があります。

でも、

SO ポスターvarからの複数のステートメントを使用する 2 つのかなり説得力のある理由を次に示します。そしてここ

于 2012-11-07T13:57:50.953 に答える