JavaScriptでは、スコープは関数スコープのみである

Javaと異なり、JavaScriptでは波括弧({})を使用したローカルスコープは存在しない。あるのは、関数スコープだけである。

例えば、ifの条件部あるいはforやwhileのループ内部でvarを使って変数を定義しても、その変数はそれらの内部でローカルな変数にはならない。その変数は関数の中でのみローカルである。

つまり、変数のスコープを管理するには関数が必須。

よくよく言われてみると、そうだなと思うが、いい勉強になった。