このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
js:function:scope [2021/04/12 14:34] tanaka |
js:function:scope [2021/04/19 14:20] (現在) tanaka |
||
|---|---|---|---|
| 行 3: | 行 3: | ||
| --- // | --- // | ||
| - | <code javascript> | + | <sxh javascript; |
| var variable = ' | var variable = ' | ||
| function func(arg) { | function func(arg) { | ||
| 行 11: | 行 11: | ||
| console.log(func(' | console.log(func(' | ||
| console.log(variable ); // 出力:' | console.log(variable ); // 出力:' | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| 行 27: | 行 27: | ||
| * 仮引数 | * 仮引数 | ||
| - | ※ ローカル変数を作りたい時は常にvar \\ | + | ※ ローカル変数を作りたい時は常に |
| ※ ES2015以前はブロックスコープがなかった | ※ ES2015以前はブロックスコープがなかった | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| var myVariable = ' | var myVariable = ' | ||
| | | ||
| 行 41: | 行 40: | ||
| | | ||
| console.log(func()); | console.log(func()); | ||
| - | </code> | + | </sxh> |
| - | varの位置に関わらずmyVariableは関数内のどこでも常にローカルスコープを持つ \\ | + | '' |
| - | ※ var myVariableをコメントアウトするとグローバルスコープを持つようになる \\ | + | ※ '' |
| - | ⇒ 変数の巻き上げ(hoisting)と呼ばれる | + | ⇒ 変数の巻き上げ('' |
| \\ \\ | \\ \\ | ||
| 行 53: | 行 52: | ||
| let(変数)又はconst(定数)によりブロックスコープを作る事ができる | let(変数)又はconst(定数)によりブロックスコープを作る事ができる | ||
| - | === 例 === | + | <sxh javascript; |
| - | <code javascript> | + | |
| let i = 1; | let i = 1; | ||
| var j = 1; | var j = 1; | ||
| 行 65: | 行 63: | ||
| } | } | ||
| console.log(`${i} ${j} ${c}`); | console.log(`${i} ${j} ${c}`); | ||
| - | </code> | + | </sxh> |
| \\ | \\ | ||
| ===== Functionコンストラクタと関数リテラルのスコープ ===== | ===== Functionコンストラクタと関数リテラルのスコープ ===== | ||
| - | <code javascript> | + | <sxh javascript; |
| var variable = ' | var variable = ' | ||
| 行 85: | 行 83: | ||
| func(); | func(); | ||
| - | </code> | + | </sxh> |
| Functionコンストラクタによるスコープはグローバルスコープを持つ。 | Functionコンストラクタによるスコープはグローバルスコープを持つ。 | ||