このページの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コンストラクタによるスコープはグローバルスコープを持つ。 |