「JavaScript/変数」の版間の差分
削除された内容 追加された内容
→変数のスコープ: 「関数スコープをもつ」の意味の説明が抜けている。 |
|||
205 行
== 変数のスコープ ==
=== 基本 ===
変数が
このことを、<code>var</code>で宣言された変数は'''関数スコープ'''を <syntaxhighlight lang="JavaScript">
233 ⟶ 235行目:
console.log(x); // 1
</SyntaxHighlight> -->
実行結果は「21」です。プログラムは上から実行するので、上記コードの場合は結果的に最初に{}ブロック内の <code> document.write(x); // 2 </code>が実行され、次に{}ブロック外の<code> document.write(x); // 1 </code>が実行されるからです。<code> </code>▼
▲上記コードの実行結果は「21」です。プログラムは上から実行するので、上記コードの場合は結果的に最初に{}ブロック内の <code> document.write(x); // 2 </code>が実行され、次に{}ブロック外の<code> document.write(x); // 1 </code>が実行されるからです。<code> </code>
上記の''x''は関数の中と外では違う変数になるので、外側の''x''の値は変わりません。一方で、下記の''x''はブロックの中と外で同じ変数を指すので、''x''の値が変わってしまいます。▼
▲上記の''x''は関数の中と外では違う変数になるので、外側の''x''の値は
一方で、下記の''x''はブロックの中と外で同じ変数を指すので(varは関数スコープを持つが、しかしif文のスコープは持たないので)、''x''の値が変わってしまいます。
<syntaxhighlight lang="JavaScript">
|