はじめに
本記事は、プログラミングの学習を始めて1ヶ月の初学者が、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
今回の疑問点
今回の疑問点は、
JavaScriptにおける変数宣言の使い分け
です。
最近、JavaScriptを勉強し始め、上記の点については一度まとめておいた方が良いと感じたので、記事にすることにしました。
疑問点についての解説
###結論
varは現在は、ほとんど使用されていない。
letは再代入が必要なときに使用し、constは定数的に扱う場合に使用する。
###それぞれの変数宣言の違いと特徴
それぞれの再宣言、再代入、スコープについてまとめます。
####再宣言
再宣言:一度宣言した変数名と同名の変数を再度宣言すること
var
→ 可能。
let
→ Uncaught SyntaxErrorが出る。不可。
const
→ Uncaught SyntaxErrorが出る。不可。
####再代入
再代入:変数に値を代入した後に別の値を代入すること(変数の中身だけを変える)
var
→ 可能。
let
→ 可能。
const
→ Uncaught TypeErrorが出る。不可。
####スコープ
スコープ:変数の有効範囲
グローバルスコープ:どこからでも参照可能
関数スコープ(ローカルスコープ):関数の中でのみ有効
ブロックスコープ(ローカルスコープ):ブロック()
や{}
の中でのみ有効
var
→ グローバルスコープと関数スコープの変数を宣言可能。
let
→ ブロックスコープの変数を宣言可能。
const
→ ブロックスコープの変数を宣言可能。
まとめ
最後にポイントをまとめます。
var | let | const | |
---|---|---|---|
再宣言 | ○ | × | × |
再代入 | ○ | ○ | × |
スコープ | グローバル・関数 | ブロック | ブロック |
上記の表から、var
はスコープも広く一見便利そうに見えますが、スコープが広いことで、意図しない参照等からエラーが発生する可能性を高めてしまうため、現在はあまり使用されていません。
let
とconst
では、let
が再代入可能、const
では不可であるため、
-
let
を再代入が必要な場合に、 -
const
は定数的な扱いをする場合に使用します。