12/08/13 12:06:26.04
>>81
グローバルとローカル以外にも、その中間にあたる、ネストスコープとかあるから。
特に最近はクロージャやラムダを多用する方向だから、ネストスコープだらけになる。
もし変数宣言がなければ、の { i=0; { i=1; } }
内側のiと外側のiが同じものなのか違うものなのか区別を付けれない。
ちなみに、Rubyだと同じもの、Pythonだと違うもの、となる。
Ruby方式だと、意図せずに変数名が被ったときにバグるし、
Python方式だと、外のスコープの変数への代入が出来ない。
その点、JSだと、varが付いていれば新しい変数、なければ外のスコープの変数、
だから、使い分けが出来るし、かつ安全で、可読性も高い。