C言語では、ブロック内のみ有効なスコープというものが存在します。
例えば、下記のコードで、”a = 20″はブロック内のみで有効なので、”a=10″と表示されます。
int a = 10; { int a = 20; } printf( "a=%d", a ); // a=10が表示される。 |
一方でJavaScriptでは、ブロック単位でのスコープが存在しません。
この為、下記のコードでaの値は20となります。
var a = 10; { var a = 20; } alert( "a=" + a ); // a=20が表示される。 |
Cプログラマがはまりやすい罠なので注意が必要です。
この記事は、以下のページを参考に作成しました。
Hidden Features of JavaScript?
関連記事
コメントを残す