[JavaScript]JavaScriptにはブロックスコープがない

JavaScriptにはブロックスコープがありません。
下図の例では、ifブロック内で宣言している変数xに、ブロック外からもアクセスできています。
javascriptにはブロックスコープがない

これがブロックスコープを持つ言語~例えばC#~なら、エラーです。
javascriptにはブロックスコープがない_C#の場合
正しくは↓ですね。

var a = 0;
if(true){
    a = 1;
}
Console.WriteLine(a);

JavaScriptのブロックスコープなしは宣言してすぐ使えるという意味では便利ですが、コードの堅牢性が下がる要因になるので、要注意だなぁ…

コメントを残す