JavaScriptとC言語のスコープの違い

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?

関連記事

コメントを残す

メールアドレスが公開されることはありません。