ばかげた質問のようですが、ただ興味があります。
num = "hello";
alert(num);
なぜこれが可能なのですか?ここで num 変数を初期化しませんでした。
num = "hello";
それ以外の
var num = "hello";
ばかげた質問のようですが、ただ興味があります。
num = "hello";
alert(num);
なぜこれが可能なのですか?ここで num 変数を初期化しませんでした。
num = "hello";
それ以外の
var num = "hello";
var
「この変数を使用できるようにする」ではなく、「この変数をこの関数にスコープする」ことを意味します。
オフのままvar
にすると、関数の次のスコープで変数が使用されます。そのスコープに がない場合はvar yourVar
、スコープ チェーンがグローバルになり、オブジェクトからぶら下がるまでスコープ チェーンを上に移動し続けwindow
ます (デフォルト オブジェクトが であるブラウザまたは別の JS 環境を想定window
)。
(これは、おそらく使用していないstrict モードで変更されます。)
キーワードを指定しないとvar
、変数はグローバル スコープで作成されます (ブラウザの の下window
)。
を追加するvar
と、変数を現在のスコープに割り当てるだけです。ほとんどの場合、これは関数スコープになります。
一般に、グローバルスコープを汚染せず、同じ名前の複数の変数間の競合を防ぐために、関数スコープを使用することをお勧めします!