From 66e79a003e5a579563d90c1d52972beb99ef2b5b Mon Sep 17 00:00:00 2001 From: aster <137767097+aster-void@users.noreply.github.com> Date: Sun, 15 Sep 2024 22:33:27 +0900 Subject: [PATCH 1/3] add sample of scope --- docs/1-trial-session/09-functions/index.mdx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index 49d8edbd..a1e92ff4 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -115,6 +115,16 @@ document.write(multiply(3, 4)); 関数内で宣言された変数は、関数内でのみ有効です。 変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 +```javascript +function setNumber(num) { + const number = num; +} + +setNumber(42); + +document.write(number); // エラー +``` + {/* prettier-ignore */} 関数外で宣言された変数関数内でも利用できます。 From 5ddbb1ff2acd4eeae60766975742b24979259262 Mon Sep 17 00:00:00 2001 From: aster <137767097+aster-void@users.noreply.github.com> Date: Fri, 27 Sep 2024 20:57:55 +0900 Subject: [PATCH 2/3] add example of if stmt --- docs/1-trial-session/09-functions/index.mdx | 25 ++++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index a1e92ff4..61b7df8d 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -112,17 +112,30 @@ document.write(multiply(3, 4)); ## 変数スコープ {/* prettier-ignore */} -関数内で宣言された変数は、関数内でのみ有効です。 -変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 +関数や if 文などのブロック内で宣言された変数は、そのブロック内でのみ有効です。 + +このような、変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 + +```javascript +const age = 18; + +if (age >= 20) { + const message = "お酒が飲めます"; +} else { + const message = "お酒は飲めません"; +} + +document.write(message); // エラー: message は定義されていません +``` ```javascript -function setNumber(num) { - const number = num; +function setAnswer(num) { + const answer = num; } -setNumber(42); +setAnswer(42); -document.write(number); // エラー +document.write(answer); // エラー: answer は定義されていません ``` {/* prettier-ignore */} From 119c3e806cdbcbc4e1718a48afcf8005d99a1bc8 Mon Sep 17 00:00:00 2001 From: aster <137767097+aster-void@users.noreply.github.com> Date: Fri, 9 May 2025 01:03:21 +0900 Subject: [PATCH 3/3] add if blocks --- docs/1-trial-session/09-functions/index.mdx | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index c5781356..b327fb69 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -104,7 +104,17 @@ document.write(multiply(3, 4)); ## 変数スコープ {/* prettier-ignore */} -関数内で宣言された変数は、関数内でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 +関数や if 文などのブロックの内側で宣言された変数は、そのブロック内でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 + +```javascript +function setAnswer(num) { + const answer = num; +} + +setAnswer(42); + +document.write(answer); // エラー: answer は定義されていません +``` ```javascript const age = 18; @@ -118,16 +128,6 @@ if (age >= 20) { document.write(message); // エラー: message は定義されていません ``` -```javascript -function setAnswer(num) { - const answer = num; -} - -setAnswer(42); - -document.write(answer); // エラー: answer は定義されていません -``` - {/* prettier-ignore */} 関数外で宣言された変数関数内でも利用できます。