0

関数ブロックに単純な印刷( "foo")を入れても機能しますが、これは機能しません。

<script>

var viewportHeight = $(window).height();
var X;

$(function() {

    if (viewportHeight >= 600) {
         var X = 100;
       }
});
</script>
4

2 に答える 2

8

キーワードは、varスコープが含まれているものに割り当てられる変数を作成するために使用されますfunction。関数内にない場合、そのスコープはでありwindow、グローバル変数になります。キーワードを省略するvarと、jsエンジンはスコープチェーンを検索して変数の最も近い定義を探します。したがって、関数内で使用することにより、その関数に対してローカルであるvarという新しい変数を作成します。X関数内のキーワードを省略するvarと、スコープチェーンが検索され、var X上記で定義したものが見つかります。

<script>

var viewportHeight = $(window).height();
var X;

$(function() {

    if (viewportHeight >= 600) {
        X = 100; //don't use var if you want to access the above X
    }
});
</script>
于 2012-05-15T18:37:32.103 に答える
2

ほんの 2 セントですが、このすべてを 1 つの式として記述できます。

  var X = $(window).height() >= 600 ? 100 : null;

これは古き良き速記の場所のようです

于 2012-05-15T18:40:05.777 に答える