Skip to content

Commit f2cf5f1

Browse files
変数の章にconstの説明追加、構成の大規模な変更
1 parent 93a6cb4 commit f2cf5f1

File tree

1 file changed

+22
-53
lines changed
  • docs/1-trial-session/05-variables

1 file changed

+22
-53
lines changed

docs/1-trial-session/05-variables/index.md

Lines changed: 22 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,36 @@ import ViewSource from "@site/src/components/ViewSource";
99

1010
<p><Term type="javascriptVariable">変数</Term>を用いると、<Term type="javascriptValue">値</Term>を一時的に保存し、再利用することができます。数学における変数は通常数値を表すものですが、プログラムにおける<Term type="javascriptVariable">変数</Term>は、<Term type="javascriptString">文字列</Term>等を含め、全ての種類の「<Term type="javascriptValue">値</Term>」を格納することができます。</p>
1111

12-
## <Term type="javascriptVariable">変数</Term>の宣言と使用
12+
## <Term type="javascriptVariable">変数</Term>の<Term type="javascriptDeclaration">宣言</Term>と使用
1313

1414
<p><Term type="javascriptVariable">変数</Term>を使用するには、まず<Term type="javascriptVariable">変数</Term>を<Term strong type="javascriptDeclaration">宣言</Term>する必要があります。</p>
1515

1616
```javascript title="script.js"
17-
let myGreatName;
18-
myGreatName = "Becky Jones";
17+
let myGreatName = "Becky Jones";
1918
document.write(myGreatName);
2019
```
2120

22-
1 行目の `let myGreatName;` で、`myGreatName` という名前の<Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>しています。`let` は、<Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>するためのキーワードです。
21+
`let` は、<Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>するためのキーワードです。 1 行目では、`myGrateName` という名前の<Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>し、そこに`"Becky Jones"` という文字列を保存しています。<Term type="javascriptVariable">変数</Term>に`=` を使って<Term type="javascriptValue">値</Term>を保存することを<Term type="javascriptAssignment">代入</Term>と呼びます。
22+
23+
2 行目では、<Term type="javascriptVariable">変数</Term> `myGreatName` が<Term type="javascriptEvaluation">評価</Term>され、<Term type="javascriptAssignment">代入</Term>されていた<Term type="javascriptString">文字列</Term><Term type="javascriptValue">値</Term> `"Becky Jones"` が画面に表示されます。
2324

24-
続いて 2 行目では、<Term type="javascriptVariable">変数</Term> `myGreatName` に文字列 `"Becky Jones"` を<Term strong type="javascriptAssignment">代入</Term>しています。`=` は<Term type="javascriptAssignment">代入</Term>を表し、左側に指定した<Term type="javascriptVariable">変数</Term>に対し、右側に指定された<Term type="javascriptValue">値</Term>を<Term type="javascriptAssignment">代入</Term>します。
25+
<p><Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>するキーワードには、<code>let</code> 以外にも<code>const</code> というものがあります。記法自体は<code>let</code> と同様です。</p>
2526

26-
3 行目では、<Term type="javascriptVariable">変数</Term> `myGreatName` が<Term type="javascriptEvaluation">評価</Term>され、<Term type="javascriptAssignment">代入</Term>されていた<Term type="javascriptString">文字列</Term><Term type="javascriptValue">値</Term> `"Becky Jones"` が画面に表示されます。
27+
```javascript title="script.js"
28+
const myGrateName = "Becky Jones";
29+
document.write(myGrateName);
30+
```
2731

28-
上の例では`my great name` というフレーズを、`myGreatName` のように記述しています。
32+
ここまでの例では`my great name` というフレーズを、`myGreatName` のように記述しています。
2933

3034
このように、複数の単語にわたるフレーズを、2 語目以降の先頭の文字を大文字にして結合する命名規則を、<Term strong type="camelCase">キャメルケース</Term>と呼びます。
3135

32-
:::note
36+
:::info
3337

3438
<p><Term type="javascript">JavaScript</Term> の<Term type="javascriptVariable">変数</Term>名には、通常<Term type="camelCase">キャメルケース</Term>が用いられます。<Term type="snakeCase">スネークケース</Term>や<Term type="pascalCase">パスカルケース</Term>などの命名規則が利用される文法もあります。</p>
3539

3640
:::
3741

38-
<p><Term type="javascriptVariable">変数</Term>の<Term type="javascriptDeclaration">宣言</Term>と同時に初回の<Term type="javascriptAssignment">代入</Term>を行うこともできます。</p>
39-
40-
```javascript title="script.js"
41-
let myGreatName = "Becky Jones";
42-
document.write(myGreatName);
43-
```
44-
4542
:::tip
4643

4744
<Term type="javascriptVariable">変数</Term>や<Term type="javascriptFunction">関数</Term>は適切に命名することが大切です。以下の例を見てみましょう。
@@ -59,24 +56,27 @@ const numberOfItems = 3;
5956
const paymentTotal = pricePerItem * numberOfItems;
6057
document.write(paymentTotal);
6158
```
62-
この二つでは、コードを通じて書きたいことの分かりやすさが全く違います。他人と開発を行うときや、過去のコードを自分が書き換えるときには、コードの可読性が求められます。変数名は多少長くなっても良いので、とにかく分かりやすいことを心がけましょう。
59+
60+
この二つでは、前者は何を言いたいのかさっぱりですが、後者はコードを通じて書きたいことが分かりやすく、後から読み返しても困りません。他人と開発を行うときや、過去のコードを自分が書き換えるときには、コードの可読性が必要になります。変数名は多少長くなっても良いので、とにかく分かりやすいことを心がけましょう。
6361

6462
:::
6563

66-
## <Term type="javascriptVariable">変数</Term>の性質
64+
## <Term type="javascriptVariable">変数</Term>の再代入
6765

68-
<p><Term type="javascriptVariable">変数</Term>には、最後に<Term type="javascriptAssignment">代入</Term>された<Term type="javascriptValue">値</Term>のみを保持する性質があります。</p>
66+
`let``const` の大きな違いは、再<Term type="javascriptAssignment">代入</Term>ができるかです。`let` では再<Term type="javascriptAssignment">代入</Term>が可能ですが、`const` はできません。
6967

7068
```javascript title="script.js"
7169
let mysteriousNumber = 0;
7270
mysteriousNumber = 1;
7371
mysteriousNumber = 2;
74-
document.write(mysteriousNumber);
72+
document.write(mysteriousNumber); // 2
7573
```
7674

77-
変数 `mysteriousNumber` は 3 回<Term type="javascriptAssignment">代入</Term>されていますが、最後に<Term type="javascriptAssignment">代入</Term>された `2` が表示されます。
75+
上の例では、<Term type="javascriptVariable">変数</Term>の<Term type="javascriptValue">値</Term>が次々と変化しています。`let` で<Term type="javascriptDeclaration">宣言</Term>された<Term type="javascriptVariable">変数</Term>は最後に<Term type="javascriptAssignment">代入</Term>された<Term type="javascriptValue">値</Term>のみを保持します。<Term type="javascriptVariable">変数</Term> `mysteriousNumber` は 3 回<Term type="javascriptAssignment">代入</Term>されていますが、最後に<Term type="javascriptAssignment">代入</Term>された `2` が表示されます。
76+
77+
一方、`const` で<Term type="javascriptDeclaration">宣言</Term>された<Term type="javascriptVariable">変数</Term>は、再<Term type="javascriptAssignment">代入</Term>ができません。すなわち、<Term type="javascriptValue">値</Term>の書き換えができません。上記のコードの`let``const` に置き換えると、エラーが発生します。
7878

79-
それでは、以下の場合はどうでしょうか
79+
`let` を使った<Term type="javascriptVariable">変数</Term>の<Term type="javascriptDeclaration">宣言</Term>について、もう少し見てみましょう
8080

8181
```javascript title="script.js"
8282
let price = 100;
@@ -90,37 +90,6 @@ document.write(price);
9090

9191
![変数の再代入](./reassignment-evaluation.png)
9292

93-
## constによる<Term type="javascriptVariable">変数</Term>の宣言
94-
95-
変数の宣言には`let` だけでなく`const` も用いることができます。
96-
97-
```javascript title="script.js"
98-
const myGrateName = "Becky Jones";
99-
document.write(myGrateName);
100-
```
101-
102-
### constとletの違い
103-
104-
`let``const` の違いは再<Term type="javascriptAssignment">代入</Term>ができるかどうかです。`let` を使う時には次のようなことができました。
105-
106-
```javascript title="script.js"
107-
let mysteriousNumber = 0;
108-
mysteriousNumber = 1;
109-
mysteriousNumber = 2;
110-
document.write(mysteriousNumber);
111-
```
112-
113-
変数に値を(再)<Term type="javascriptAssignment">代入</Term>することで、変数に保存されているデータを書き換えることができました。一方で、`const` を使った場合は変数に保存される値が固定され、書き換えができなくなります。上のコードを`const` に書き換えて実行しても、思った通りには表示されないはずです。
114-
115-
:::info
116-
117-
`const` を使う時には、宣言時に値を代入する必要があります。
118-
119-
`let` と同じように`const 変数名;` と書くと、実行時にエラーが発生します。
120-
121-
:::
122-
12393
### constとletの用途
12494

125-
`const``let` は用途によって使い分けがあります。基本的には、意図せず値を書き換えてしまうことを防ぐために`const` が使われます。`let` が必要な場合は様々ですが、状態を保存しておくための変数を宣言することに使われることが多いです。
126-
[繰り返し](./../08-loop/)の章にあるカウンタ変数がその一例です。他にも、変数の値を踏まえて条件分岐を行うなど、様々な用途があります。
95+
`const``let` は用途によって使い分けがあります。基本的には、意図せず<Term type="javascriptValue">値</Term>を書き換えてしまうことを防ぐために`const` が使われます。`let` が必要な場合は様々ですが、状態を保存しておくための<Term type="javascriptVariable">変数</Term>を<Term type="javascriptDeclaration">宣言</Term>することに使われることが多いです。[繰り返し](./../08-loop/)の章にあるカウンタ<Term type="javascriptVariable">変数</Term>がその一例です。他にも、<Term type="javascriptVariable">変数</Term>の値を踏まえて条件分岐を行うなど、様々な用途があります。

0 commit comments

Comments
 (0)