From 1c4b02e5cd9084601257d18e6df8df5c4291548e Mon Sep 17 00:00:00 2001 From: nakaterm <104970808+nakaterm@users.noreply.github.com> Date: Sun, 15 Feb 2026 19:02:24 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=8C=E5=A4=89=E6=95=B0=E3=81=AE?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=83=BC=E3=83=97=E3=80=8D=E3=81=AE=E9=A0=85?= =?UTF-8?q?=E3=82=92=E3=83=AA=E3=83=A9=E3=82=A4=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/1-trial-session/09-functions/index.mdx | 61 +++++++++++---------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index ede6bbe7a..f737addf5 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -103,17 +103,40 @@ document.write(multiply(3, 4)); ## 変数スコープ -{/* prettier-ignore */} -関数内で宣言された変数は、関数内でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 +関数やif文などの中で宣言された変数 +は、それらの内部でのみ有効です。変数が有効な範囲のことを、その +変数**スコープ**と呼んでいます。 -{/* prettier-ignore */} -関数外で宣言された変数関数内でも利用できます。 +次の例では、関数`greet`の中で変数`message`を宣言しています。 + +```javascript +function greet() { + let message = "Hello!"; + document.write(message); // Hello! と表示される +} + +greet(); +``` + +ここで、関数の外側から`message`を利用しようとするとエラーになります。 + +```javascript +function greet() { + let message = "Hello!"; +} + +greet(); + +// document.write(message); これはエラーになる +``` + +一方で、関数の外側で宣言された変数関数の内側から利用することは可能です。 ```javascript let guestCount = 0; function greet() { - guestCount += 1; + guestCount = guestCount + 1; document.write("あなたは" + guestCount + "人目のお客様です。"); } @@ -121,44 +144,22 @@ greet(); // あなたは1人目のお客様です。 greet(); // あなたは2人目のお客様です。 ``` -この例における、`greet`関数は、呼び出されるたびに`guestCount`に1を加えています。 - :::tip[複合代入演算子] [**複合代入演算子**](https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#%E4%BB%A3%E5%85%A5%E6%BC%94%E7%AE%97%E5%AD%90) は、計算と代入を同時に行うことができる演算子です。 `x += y`は、`x = x + y`という意味になります。他にも`-=`や`*=`などの演算子が定義されています。`x -= y`は`x = x - y`、`x *= y`は`x = x * y`という意味になります。 -```javascript -guestCount += 1; -``` - -は以下の文のように読み替えられます。 +上の例の ```javascript guestCount = guestCount + 1; ``` -::: - -:::warning[変数**スコープ**] - -{/* prettier-ignore */} -スコープが終わった変数は、その時点で破棄されます。 +は以下のように書き換えることができます。 ```javascript -let outer = 0; - -function increment() { - let inner = 0; - outer += 1; - inner += 1; - document.write(outer); // 1ずつ増える - document.write(inner); // 常に1 -} - -increment(); -increment(); +guestCount += 1; ``` ::: From e615ec59e358b11210e05afeb15d564844dabb04 Mon Sep 17 00:00:00 2001 From: nakaterm <104970808+nakaterm@users.noreply.github.com> Date: Sun, 15 Feb 2026 19:12:25 +0900 Subject: [PATCH 2/5] =?UTF-8?q?prettier-ignore=20=E3=82=92=E5=BF=98?= =?UTF-8?q?=E3=82=8C=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=81=A7=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/1-trial-session/09-functions/index.mdx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index f737addf5..f11837e89 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -103,9 +103,8 @@ document.write(multiply(3, 4)); ## 変数スコープ -関数やif文などの中で宣言された変数 -は、それらの内部でのみ有効です。変数が有効な範囲のことを、その -変数**スコープ**と呼んでいます。 +{/* prettier-ignore */} +関数やif文などの中で宣言された変数は、それらの内部でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 次の例では、関数`greet`の中で変数`message`を宣言しています。 From a5ef48a596dd1351b233f6e5977172c98394230a Mon Sep 17 00:00:00 2001 From: nakaterm <104970808+nakaterm@users.noreply.github.com> Date: Sun, 15 Feb 2026 22:01:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?let=20=E3=81=A8=20const=20=E3=81=AB?= =?UTF-8?q?=E9=99=90=E3=82=8B=E6=97=A8=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/1-trial-session/09-functions/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index f11837e89..0c615fa62 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -104,7 +104,7 @@ document.write(multiply(3, 4)); ## 変数スコープ {/* prettier-ignore */} -関数やif文などの中で宣言された変数は、それらの内部でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 +関数やif文などの中で`let`や`const`を使って宣言された変数は、それらの内部でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 次の例では、関数`greet`の中で変数`message`を宣言しています。 From 37c667427f8f4d6b60c0b9fd62d2bcc3b30cf535 Mon Sep 17 00:00:00 2001 From: nakaterm <104970808+nakaterm@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:31:36 +0900 Subject: [PATCH 4/5] =?UTF-8?q?const=20=E3=81=AB=E7=B5=B1=E4=B8=80?= =?UTF-8?q?=E3=81=97=E3=81=A6=E5=85=A8=E4=BD=93=E3=82=92=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/1-trial-session/09-functions/index.mdx | 40 +++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index 0c615fa62..e5846fee4 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -106,41 +106,41 @@ document.write(multiply(3, 4)); {/* prettier-ignore */} 関数やif文などの中で`let`や`const`を使って宣言された変数は、それらの内部でのみ有効です。変数が有効な範囲のことを、その変数**スコープ**と呼んでいます。 -次の例では、関数`greet`の中で変数`message`を宣言しています。 +次の例では、関数`greet`の中で変数`siteName`を宣言しています。 ```javascript function greet() { - let message = "Hello!"; - document.write(message); // Hello! と表示される + const siteName = "田中のブログ"; + document.write("ようこそ、" + siteName + "へ!"); } -greet(); +greet(); // ようこそ、田中のブログへ! と表示される ``` -ここで、関数の外側から`message`を利用しようとするとエラーになります。 +ここで、関数の外側から`siteName`を利用しようとするとエラーになります。 ```javascript function greet() { - let message = "Hello!"; + const siteName = "田中のブログ"; + document.write("ようこそ、" + siteName + "へ!"); } -greet(); +greet(); // ようこそ、田中のブログへ! と表示される -// document.write(message); これはエラーになる +// これはエラーになる +// document.write(siteName); ``` 一方で、関数の外側で宣言された変数関数の内側から利用することは可能です。 ```javascript -let guestCount = 0; +const siteName = "田中のブログ"; function greet() { - guestCount = guestCount + 1; - document.write("あなたは" + guestCount + "人目のお客様です。"); + document.write("ようこそ、" + siteName + "へ!"); } -greet(); // あなたは1人目のお客様です。 -greet(); // あなたは2人目のお客様です。 +greet(); // ようこそ、田中のブログへ! と表示される ``` :::tip[複合代入演算子] @@ -149,16 +149,18 @@ greet(); // あなたは2人目のお客様です。 `x += y`は、`x = x + y`という意味になります。他にも`-=`や`*=`などの演算子が定義されています。`x -= y`は`x = x - y`、`x *= y`は`x = x * y`という意味になります。 -上の例の +次の例の`greet`関数は、呼び出されるたびに`guestCount`に1を加えています。`guestCount += 1;`は、`guestCount = guestCount + 1;`のように読み替えられます。 ```javascript -guestCount = guestCount + 1; -``` +let guestCount = 0; -は以下のように書き換えることができます。 +function greet() { + guestCount += 1; + document.write("あなたは" + guestCount + "人目のお客様です。"); +} -```javascript -guestCount += 1; +greet(); // あなたは1人目のお客様です。 +greet(); // あなたは2人目のお客様です。 ``` ::: From 5066c1394d49f4474b371ea992b4a2031047b09d Mon Sep 17 00:00:00 2001 From: nakaterm <104970808+nakaterm@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:45:31 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AB?= =?UTF-8?q?=E3=81=AA=E3=82=8B=E8=A1=8C=E3=82=92=E3=82=B3=E3=83=A1=E3=83=B3?= =?UTF-8?q?=E3=83=88=E3=82=A2=E3=82=A6=E3=83=88=E3=81=97=E3=81=AA=E3=81=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/1-trial-session/09-functions/index.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/1-trial-session/09-functions/index.mdx b/docs/1-trial-session/09-functions/index.mdx index e5846fee4..1ebcb1855 100644 --- a/docs/1-trial-session/09-functions/index.mdx +++ b/docs/1-trial-session/09-functions/index.mdx @@ -127,8 +127,7 @@ function greet() { greet(); // ようこそ、田中のブログへ! と表示される -// これはエラーになる -// document.write(siteName); +document.write(siteName); // これはエラーになる (Uncaught ReferenceError: siteName is not defined) ``` 一方で、関数の外側で宣言された変数関数の内側から利用することは可能です。