|
2 | 2 | title: 変数 |
3 | 3 | --- |
4 | 4 |
|
5 | | -## <Term>変数</Term>とは |
| 5 | +## 変数とは |
6 | 6 |
|
7 | | -{/* prettier-ignore */} |
8 | | -<Term>**変数**</Term>は値を一時的に保存しておくための入れ物で、他のところで再利用することができます。 |
9 | | -プログラムにおける<Term>変数</Term>は、数値だけでなく、<Term>文字列</Term>等を含め、全ての種類の「<Term>値</Term>」を入れることができます。 |
| 7 | +**変数**を用いると<Term>値</Term>を一時的に保存し、他のところで再利用することができます。 |
10 | 8 |
|
11 | | -## <Term>変数</Term>の<Term>宣言</Term>と使用 |
| 9 | +数学における変数は数値のことを表しますが、プログラムにおける<Term>変数</Term>には、<Term>数値</Term>だけでなく、<Term>文字列</Term>などのすべての「<Term>値</Term>」を入れることができます。 |
| 10 | + |
| 11 | +## 変数の宣言と使用 |
| 12 | + |
| 13 | +次のプログラムでは、`myName` という<Term>変数</Term>を宣言し、そこに `"田中太郎"` という<Term>文字列</Term>を代入しています。 |
| 14 | +その後に、変数 `myName` に代入されている<Term>値</Term>を画面に表示しています。 |
12 | 15 |
|
13 | | -{/* prettier-ignore */} |
14 | 16 | ```javascript |
15 | 17 | let myName = "田中太郎"; |
16 | 18 | document.write(myName); // 田中太郎 |
17 | 19 | ``` |
18 | 20 |
|
19 | | -`let` は、<Term>変数</Term>を<Term>**宣言**</Term>するためのキーワードです。 |
| 21 | +`let myName = "田中太郎";` とすることで、`myName` という名前の<Term>変数</Term>を**宣言**し、そこに<Term>文字列</Term> `"田中太郎"` を**代入**しています。 |
20 | 22 |
|
21 | | -1 行目では、`myName` という名前の<Term>変数</Term>を<Term>宣言</Term>し、そこに文字列 `"田中太郎"` を<Term>**代入**</Term>しています。 |
| 23 | +`let` は、<Term>変数</Term>を<Term>宣言</Term>するためのキーワードです。 |
22 | 24 |
|
23 | | -`=` は<Term>代入</Term>を表し、左側に指定した<Term>変数</Term>に対し、右側に指定された<Term>値</Term>を<Term>代入</Term>します。 |
24 | | -プログラミングにおける `=` はあくまでも代入の意味で、数学における等号 ($=$) とは意味が異なります。 |
| 25 | +`=` は<Term>代入</Term>を表します。 |
| 26 | +プログラムにおける `=` はあくまでも代入の意味で、数学における等号 ($=$) とは意味が異なります。 |
25 | 27 |
|
26 | | -2 行目では、<Term>変数</Term> `myName` に<Term>代入</Term>されていた<Term>文字列</Term> `"田中太郎"` が画面に表示されます。 |
| 28 | +`document.write(myName);` とすることで、<Term>変数</Term> `myName` に<Term>代入</Term>されていた<Term>値</Term> `"田中太郎"` が画面に表示されます。 |
27 | 29 |
|
28 | 30 | ## 再代入 |
29 | 31 |
|
| 32 | +一度代入が行われた変数に、新しい<Term>値</Term>を再び代入することができます。 |
| 33 | +これを**再代入**と呼びます。 |
| 34 | + |
| 35 | +次のプログラムは、2 回再代入を行っており、最後に再代入された<Term>値</Term> `12` が表示されます。 |
| 36 | + |
30 | 37 | ```javascript |
31 | | -let myAge = 14; |
| 38 | +let myAge = 11; |
32 | 39 | myAge = 13; |
33 | | -myAge = 15; |
34 | | -document.write(myAge); // 15 |
| 40 | +myAge = 12; |
| 41 | +document.write(myAge); // 12 |
35 | 42 | ``` |
36 | 43 |
|
37 | | -上のコードを見てください。 |
38 | | -一度宣言した変数に、再び代入が行われています。 |
39 | | -これを**再代入**と呼びます。 |
40 | | - |
41 | | -{/* prettier-ignore */} |
42 | | -<Term>変数</Term> `myAge` には 2 回再<Term>代入</Term>が行われており、最後に<Term>代入</Term>された `15` が表示されています。 |
43 | | -<Term>変数</Term>には、最後に<Term>代入</Term>された<Term>値</Term>のみを保持する性質があるのです。 |
44 | | - |
45 | | -さらに、再<Term>代入</Term>について詳しく見てみましょう。 |
46 | | -それでは、以下の場合はどうでしょうか。このコードの結果は何でしょう? |
| 44 | +再代入について、さらに詳しく見ていきましょう。 |
| 45 | +次のプログラムを実行すると、何と表示されるでしょうか。 |
47 | 46 |
|
48 | | -```javascript |
| 47 | +```javascript showLineNumbers |
49 | 48 | let price = 100; |
50 | 49 | price = price / 2; |
51 | 50 | document.write(price); |
52 | 51 | ``` |
53 | 52 |
|
54 | 53 | <ViewSource url={import.meta.url} path="_samples/compound-assignment" /> |
55 | 54 |
|
56 | | -{/* prettier-ignore */} |
57 | | -2行目は `price / 2` が `100 / 2` となり、その結果の `50` が `price` に再代入されています。 |
| 55 | +このプログラムを実行すると、`50` と表示されます。 |
| 56 | +それは、2 行目では `price / 2` が先に計算されて `100 / 2` となり、その結果の `50` が `price` に再代入されているからです。 |
58 | 57 |
|
59 | 58 |  |
60 | 59 |
|
61 | 60 | :::tip |
62 | 61 |
|
63 | | -ここまでの例では、`my name` というフレーズを、`myName` のように記述しています。 |
64 | | -このように、複数の単語にわたるフレーズを、2 語目以降の先頭の文字を大文字にして結合する命名規則を、キャメルケースと呼びます。 |
| 62 | +ここまでの例では、変数を宣言する時に `my name` というフレーズを `myName` のように書いてきました。 |
| 63 | +JavaScript では変数の名前は、複数の単語にわたるフレーズを 2 語目以降の先頭の文字を大文字にして結合するのが一般的です。 |
65 | 64 |
|
66 | 65 | ::: |
67 | 66 |
|
68 | | -## 確認問題 |
| 67 | +## 演習問題 |
69 | 68 |
|
70 | | -`counter` という名前の変数を作成し初期値を `0` としてください。 |
71 | | -その後、`counter` に `1` を加え、その結果を表示してください。 |
| 69 | +`counter` という名前の変数を作成し初期値を `0` として、変数 `counter` に代入されている<Term>値</Term>を表示してください。 |
| 70 | +その後、変数 `counter` に `1` を足し、変数 `counter` に代入されている<Term>値</Term>を表示してください。 |
72 | 71 |
|
73 | 72 | <Answer title="カウンター"> |
74 | 73 |
|
75 | 74 | ```javascript |
76 | 75 | let counter = 0; |
| 76 | +document.write(counter); |
77 | 77 | counter = counter + 1; |
78 | 78 | document.write(counter); |
79 | 79 | ``` |
|
0 commit comments