好きな人と、生きていく。

かずまとのゆが2人で紡ぐ、日記のようなブログです。

【かずま】Javascriptの定数&変数の作り方

こんばんわ、かずまです!

システムエンジニアへの転職のため、勉強頑張ってます!!


今日は、僕が最近学んでいるプログラミング言語Javascriptでの変数の作り方についてまとめてみました!!


そもそも定数、変数とは?

それらはズバリ… 「箱」です!

その箱の中には、数値や文字などのデータを入れることができます。

箱の中に入れたデータは、コンピュータに命令すればいつでも取り出せます。
また、あとから変更・修正も効くものもあります。

name という箱に kazuma という名前を入れよう!!

では今回はその箱(定数or変数)の名前を name と名付け、kazuma という名前をその箱に入れたとします。

この時、コードの書き方は3種類あります。

  const name = 'kazuma';

  let name = 'kazuma';

  var name = 'kazuma';


このうち「const」は定数で、 「let」 や 「var」は変数というのですが、どれもお尻に name = 'kazuma' がくっついていますね。

このいずれのプログラムも実行していることは同じで、「kazuma を name という箱に入れる。」の意味です。

(プログラミングの世界で 「=」は「イコール(等しい)」という意味ではありません。「右辺を左辺へ代入する」という意味になります。)

「どれも同じなら何で3種類もあるの?」 この疑問を持ったアナタ!! 着眼点がイイですね。



const / let / var のそれぞれの違いは?

① const は、再宣言不可、再代入不可 というルールがあります。
どういうことなのかというと、まず「再宣言」についてはこちらです。

  const name = 'kazuma';

  const name = 'KAZUMA';

プログラミングでは基本的に、上から下の順番で処理を実行します。

最初に「constを使ってnameという箱を作ってkazuma入れますよー!!」って言ってるのに、
その後何事もなかったかのように「constを使ってnameという箱にKAZUMA入れますよー!!」って言ってるわけです。
そりゃconstさんからすれば「は? お前今さっき…。」ですよね(笑)

次は、「再代入」について。これは例えばこんなケース

  const name = 'kazuma';

  name = 'KAZUMA';

「再宣言」の時と様子が少し違いますね。

これはconstを使って「nameという箱を作ってkazuma入れますよー!!」って言って後で、 「ごめんやっぱりKAZUMA入れるわ!!」って言ってます。
(小文字は大文字と区別されます。)
これもconstさんはNGです。「ふざけんな」と。 「定められた数」なので変えることはできませんよ!ってことですね。


②let は、再宣言不可です。(再代入は可)

  let name = 'kazuma';

  let name = 'KAZUMA';

はNGですが、

  let name = 'kazuma';

  name = 'KAZUMA';

はOKです! 「箱を作り直すのはダメだけど、中身を入れ替えるだけならいいよ!!」ってことですね!


③var は再宣言も再代入もアリです。 一見便利なように思えますが…、制限がなくなんでもアリな分、人にコードを見てもらったとき
「なにこれ再宣言も再代入もやりまくってるみたいだけど結局これ何がどう動いてるの?」となるのは必至。

また、エラーすら起きないので、実際の出力内容がおかしくてもどこが間違っているのか発見しづらいでしょう。

結論!! 使い分けはどうするの?

結論、使い分けといいますか、使用する順番として
最初に const それが無理なら let それでもダメなら var… と言ったところですね!
与えられた制限を理解し、使いこなしましょう!!