JavaScriptの変数のスコープ

JavaScriptの変数のスコープについてまとめています。
※以下の記事も参照。
JavaScriptプログラミング、メモの”JavaScriptのスコープに関する注意点”
TypeScriptプログラミング、メモの”変数の巻上げ(hoisting)とlet”

※目次をクリックすると目次の下部にコンテンツが表示されます。

変数の宣言とスコープ
①var
・ローカル変数とグローバル変数、両方の宣言に利用できる。
・varを伴って宣言した変数のスコープは実行コンテキスト(execution context)であり、これは変数を含んでいる関数、または関数の外で宣言された変数はグローバルになる。
 
②単純に変数に値を代入
・常にグローバル変数として宣言される。
・StrictモードのJavaScriptの場合は警告が出される。この方法は使用すべきではない。
 
③let
・ブロックスコープのローカル変数を宣言することができる。
・letを使用することで、変数のスコープをそれが使用されたブロック、文または式に限定することができる。
 これはvarキーワードとは異なり、グローバル変数を定義したり、ブロックスコープに留まらない関数全体でのローカル変数を定義したりしない。

変数のスコープ
〇global変数
・変数を関数の外側で宣言すると、その変数はその文書のどのコードからも使用できるようになる。
 
〇local変数
・変数を関数の内部で宣言すると、その変数はその関数の中でしか使用できない。
・ECMAScript6以前のJavaScriptにはブロック文のスコープがない。
 ブロック内で宣言した変数はブロックを内包している関数(あるいはグローバルスコープ)に対して局所化される。

変数の巻上げ
・JavaScriptの変数は、関数内のいかなる場所で宣言されたとしても、その関数の先頭で宣言されたのと同じように動作する。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です