@@ -18,11 +18,11 @@ let myGreatName = "Becky Jones";
1818document .write (myGreatName);
1919```
2020
21- ` let ` は、<Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >するためのキーワードです。 1 行目では、` myGreatName ` という名前の<Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >し、そこに ` "Becky Jones" ` という文字列を保存しています。 <Term type = " javascriptVariable " >変数</ Term >に値を保存する操作を< Term strong type =" javascriptAssignment " >代入</Term >と呼びます。 <Term type =" javascriptAssignment " >代入</Term >をするときには ` = ` の記号を用います。左側に <Term type =" javascriptVariable " >変数</Term >、右側に保存する <Term type =" javascriptValue " >値</Term >を指定することで <Term type =" javascriptAssignment " >代入</Term >を行います 。
21+ ` let ` は、<Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >するためのキーワードです。1 行目では、` myGreatName ` という名前の<Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >し、そこに文字列 ` "Becky Jones" ` を <Term strong type =" javascriptAssignment " >代入</Term >しています。 ` = ` は <Term type =" javascriptAssignment " >代入</Term >を表し、左側に指定した <Term type =" javascriptVariable " >変数</Term >に対し、右側に指定された <Term type =" javascriptValue " >値</Term >を <Term type =" javascriptAssignment " >代入</Term >します 。
2222
23232 行目では、<Term type =" javascriptVariable " >変数</Term > ` myGreatName ` が<Term type =" javascriptEvaluation " >評価</Term >され、<Term type =" javascriptAssignment " >代入</Term >されていた<Term type =" javascriptString " >文字列</Term ><Term type =" javascriptValue " >値</Term > ` "Becky Jones" ` が画面に表示されます。
2424
25- <p ><Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >するキーワードには、<code >let</code > 以外にも<code >const</code > があります。記法自体は<code >let</code > と同様です 。</p >
25+ <p ><Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >するキーワードには、<code >let</code > 以外にも <code >const</code > があります。記法自体は<code >let</code > と同様ですが、少し違いがあります。違いについては、次の節で説明します 。</p >
2626
2727``` javascript title="script.js"
2828const myGreatName = " Becky Jones" ;
@@ -41,7 +41,7 @@ document.write(myGreatName);
4141
4242::: tip
4343
44- <Term type =" javascriptVariable " >変数</Term >は適切に命名することが大切です 。以下の例を見てみましょう。
44+ <Term type =" javascriptVariable " >変数</Term >に適切な命名をすることは非常に重要です 。以下の例を見てみましょう。
4545
4646``` javascript
4747const a = 500 ;
@@ -52,18 +52,18 @@ document.write(c);
5252
5353``` javascript
5454const itemPrice = 500 ;
55- const countItem = 3 ;
56- const totalPayment = itemPrice * countItem ;
57- document .write (totalPayment );
55+ const itemCount = 3 ;
56+ const totalPrice = itemPrice * itemCount ;
57+ document .write (totalPrice );
5858```
5959
60- 一つ目のコードでは、 ` a ` ` b ` ` c ` に何が保存されているのかが分かりにくいですね。二つ目のコードでは変数名がその変数の説明も兼ねているので、保存されている値が分かりやすいと思います。プログラムを書いているときには ` a ` に何が入っていたか覚えていても、後から読み返すときには忘れていることが多いです。コードを読み返すときや他人が読むときに備え、わかりやすい変数の命名を心がけましょう 。
60+ 前者と後者のコードは、同じ計算を行っています。しかし、前者のコードでは ` a ` や ` b ` 、 ` c ` という変数名が何を表しているのかがわかりません。一方、後者のコードでは、 ` itemPrice ` や ` itemCount ` 、 ` totalPrice ` という変数名から、どのような計算を行っているのかがすぐに分かります。共同で開発を行うときや、後からコードを読み返すときに、変数名が適切に付けられていると、コードの理解が容易になります 。
6161
6262:::
6363
64- ## <Term type =" javascriptVariable " >変数</Term >の再代入
64+ ## <Term type =" javascriptVariable " >変数</Term >への再< Term type = " javascriptAssignment " >代入</ Term >
6565
66- ` let ` と` const ` の大きな違いは、再<Term type =" javascriptAssignment " >代入</Term >ができるかどうかです 。` let ` では再 <Term type =" javascriptAssignment " >代入</Term >が可能ですが、` const ` ではできません 。
66+ ` let ` と ` const ` の大きな違いは、再<Term type =" javascriptAssignment " >代入</Term >が可能かどうかです 。` let ` で <Term type =" javascriptDeclaration " >宣言</ Term >された< Term type = " javascriptVariable " >変数</ Term >には再< Term type = " javascriptAssignment " >代入</Term >が可能ですが、` const ` で< Term type = " javascriptDeclaration " >宣言</ Term >された< Term type = " javascriptVariable " >変数</ Term >にはできません。次の例を見てみましょう 。
6767
6868``` javascript title="script.js"
6969let mysteriousNumber = 0 ;
@@ -72,15 +72,11 @@ mysteriousNumber = 2;
7272document .write (mysteriousNumber); // 2
7373```
7474
75- 上の例では、< Term type =" javascriptVariable " >変数</Term >が ` let ` で< Term type = " javascriptDeclaration " >宣言</ Term >され、 <Term type =" javascriptVariable " >変数 </Term >の <Term type =" javascriptValue " >値</Term >が次々と変化しています。このように 、<Term type =" javascriptVariable " >変数</Term >に新たな< Term type = " javascriptValue " >値</ Term >を <Term type =" javascriptAssignment " >代入</Term >することを再 <Term type =" javascriptAssignment " >代入</Term >と呼びます。
75+ < p >< Term type =" javascriptVariable " >変数</Term >には、最後に <Term type =" javascriptAssignment " >代入 </Term >された <Term type =" javascriptValue " >値</Term >のみを保持する性質があります。そのため 、<Term type =" javascriptVariable " >変数</Term > < code >mysteriousNumber</ code > は 3 回 <Term type =" javascriptAssignment " >代入</Term >が行われていますが、最後に <Term type =" javascriptAssignment " >代入</Term >された < code > 2</ code > が表示されます。</ p >
7676
77- ` const ` で<Term type =" javascriptDeclaration " >宣言</Term >された<Term type =" javascriptVariable " >変数</Term >は 、再<Term type =" javascriptAssignment " >代入</Term >ができません。すなわち、< Term type = " javascriptValue " >値</ Term >の書き換えができません。 上記のコードの` let ` を` const ` に置き換えると、エラーが発生します 。
77+ 一方、 ` const ` で<Term type =" javascriptDeclaration " >宣言</Term >された<Term type =" javascriptVariable " >変数</Term >には 、再<Term type =" javascriptAssignment " >代入</Term >ができません。そのため、 上記のコードの ` let ` を ` const ` に置き換えることはできません 。
7878
79- ` const ` で<Term type =" javascriptVariable " >変数</Term >を<Term type =" javascriptDeclaration " >宣言</Term >した場合も、最後に<Term type =" javascriptAssignment " >代入</Term >された<Term type =" javascriptValue " >値</Term >が保存されます。` const ` は再<Term type =" javascriptAssignment " >代入</Term >ができないので、実質的には<Term type =" javascriptDeclaration " >宣言</Term >時の<Term type =" javascriptValue " >値</Term >が保存されるということになります。
80-
81- <Term type =" javascriptVariable " >変数</Term >には最後に<Term type =" javascriptAssignment " >代入</Term >された<Term type =" javascriptValue " >値</Term >のみを保存する性質があるので、上のコードの例では<Term type =" javascriptVariable " >変数</Term > <code >mysteriousNumber</code > に最後に<Term type =" javascriptAssignment " >代入</Term >された<code >2</code > が表示されます。
82-
83- ` let ` を使った<Term type =" javascriptVariable " >変数</Term >の<Term type =" javascriptDeclaration " >宣言</Term >について、もう少し見てみましょう。
79+ さらに、再<Term type =" javascriptAssignment " >代入</Term >について詳しく見てみましょう。それでは、以下の場合はどうでしょうか。
8480
8581``` javascript title="script.js"
8682let price = 100 ;
@@ -93,26 +89,3 @@ document.write(price);
9389<p ><Term type =" javascriptAssignment " >代入</Term ><Term type =" javascriptOperator " >演算子</Term >は、まず右辺の<Term type =" javascriptExpression " >式</Term >を<Term type =" javascriptEvaluation " >評価</Term >します。これにより、右辺は <code >100 / 2</code > となります。よって、最終的に<Term type =" javascriptVariable " >変数</Term > <code >price</code > の<Term type =" javascriptValue " >値</Term >は <code >50</code > となり、これは <code >price</code > を半分にする操作に対応します。</p >
9490
9591![ 変数の再代入] ( ./reassignment-evaluation.png )
96-
97- ## constとletの用途
98-
99- ` const ` と` let ` は用途によって使い分けがあります。基本的には、意図せず<Term type =" javascriptValue " >値</Term >を書き換えてしまうことを防ぐために` const ` が使われます。
100-
101- ``` javascript
102- const mysteriousNumber = 1 ;
103- /* めちゃめちゃ長いコード
104- --------------
105- --------------
106- --------------
107- --------------
108- めちゃめちゃ長いコード */
109- document .write (mysteriousNumber);
110- ```
111-
112- ` mysteriousNumber ` は何を表しているのかを読み取る場合を考えましょう。もしこれを` let ` で<Term type =" javascriptDeclaration " >宣言</Term >した場合、` mysteriousNumber ` は` /* めちゃめちゃ長いコード */ ` の中で書き換えられているかもしれません。そのため、変数の<Term type =" javascriptValue " >値</Term >を読み取るためにはコード全体を読み返す必要があります。しかし、このように` const ` を用いることで` mysteriousNumber ` の<Term type =" javascriptValue " >値</Term >は一意に決まります。` const ` を使用できる場面では` const ` を使用しましょう。
113-
114- ::: info
115-
116- 実際に開発をする場面では、` const ` を使う場面がかなり多いです。この教材内でも基本的には` const ` が用いられています。
117-
118- :::
0 commit comments