はじめに
現在フロントエンドの勉強に邁進しているのですが、実際実装するに当たって、序盤「変数宣言ってどれを定義すればいいの?」って悩む人は多いのではないでしょうか?自分は、const
let
var
をどんな時に使っていいのかかなり悩んでしまいました。
そこで、今回は大きく3種類あるスコープ(const
let
var
)の中で一体どれを使っていけばいいのか?を対比させながら解説できればと思います。皆さんの理解の一助になれれば幸いです。
const,let,varの違い
変数宣言では、上記3種類のスコープが使われているのですが、使用用途は以下の通りです。
スコープ | 意味 | 再代入 | 再宣言 |
---|---|---|---|
const | constant(定数) | × | × |
let | let(仮の値) | ○ | × |
var | variable(変数) | ○ | ○ |
ここで再代入/再宣言とは、変数へ再度代入/宣言することをそれぞれ表しています。具体的な実装点は以下の通りになっています。
実装してみる
実際にコードを書いてみると、それぞれのスコープに対して、const
で宣言した変数では、再代入/再宣言でエラー、let
で宣言した変数では、再宣言でエラーが出ていることがわかります。それに対してvar
は再代入/再宣言どちらも対応可能であることも確認できます。
しかし、var
に関しては、再代入/再宣言両方できる利便性がある反面、大規模なシステムになった場合、全く別の部分で知らずに変数を宣言してしまうなど、影響範囲も少なくありません。そのことから、利用に関しては非推奨になっています。
最後に
今回は変数宣言について勉強しました。もともとプログラミングの入りがPHP,Rubyなどの動的型付け言語(インタプリタ言語)と呼ばれる型宣言しなくて良い言語から入っていたので、変数宣言なんてしなくていいだろうと思っていました。しかし、変数宣言を用いる静的型付け言語(コンパイラ言語)とは特性が大きく違うということがわかってから、これからも正しく使い分けていければなと思いました。
また、勉強していく中で躓きそうなポイントがあれば、言語問わず記事にしていこうと思います。