関数ブロックに単純な印刷( "foo")を入れても機能しますが、これは機能しません。
<script>
var viewportHeight = $(window).height();
var X;
$(function() {
if (viewportHeight >= 600) {
var X = 100;
}
});
</script>
関数ブロックに単純な印刷( "foo")を入れても機能しますが、これは機能しません。
<script>
var viewportHeight = $(window).height();
var X;
$(function() {
if (viewportHeight >= 600) {
var X = 100;
}
});
</script>
キーワードは、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>
ほんの 2 セントですが、このすべてを 1 つの式として記述できます。
var X = $(window).height() >= 600 ? 100 : null;
これは古き良き速記の場所のようです