【JavaScript】変数と定数【let, const】

JavaScript

みなさんこんにちは、現役エンジニアのサメハックです

アパレル企業でトップ販売員を経て
未経験からWebエンジニアに転職し、
現在正社員として5年働いています!

今回は変数と定数について学んでいきましょう!

駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!

この記事を読むと・・・
  • 変数・定数が何かがわかる
  • 変数・定数を宣言できるようになる
  • 変数・定数の使い分け方がわかる
変数と定数は超超超重要なのでマスターしちゃおう!


そもそも変数や定数ってなに?

まず概念として、理解していただくために
変数を例に大枠を解説しようと思います。

変数とはよく言われる例えをすると、
“値を入れておく箱”です。

たとえばですが、
委員長という変数があったとします。
1学期は“飯塚さん”
2学期は“角田さん”
3学期は“豊本さん”
というように、“委員長”という名前の箱に
様々な人(値)を入れることが出来ます。

簡単に言うとこれだけのことです!

変数というのは”値を入れておく箱”だよ!

変数名というのは”箱の名前”だよ!


変数

では、変数について解説していこうと思います。

変数というのは、値の再代入が可能な箱です。

先ほどの委員長の例のように、
任意に中の値を再代入、つまり上書きすることが出来ます

構文

// 変数の宣言
let 変数名 = 値;

// 上書き
変数名 = 新しい値;

実際にnameという変数を宣言し、
そのあとに値を上書きしてみましょう。

// 変数nameの宣言
let name = "サメハック";

console.log(name);
// サメハック

// 変数nameの上書き
name = "飯塚"

console.log(name);
// 飯塚

これが、変数宣言から上書きまでの一連の流れです!
なんとなくイメージできましたか?

ちなみに、変数宣言時に代入する値を初期値といいます。

変数というのは、値が上書き可能な箱だよ!


定数

定数とは、値の再代入が出来ない箱です。

ここが変数との最も大きな違いです。

■構文

// 定数の宣言
const 定数名 = 値;

ちなみに、再代入しようとするとエラーが発生します。

// 定数の宣言
const name = "サメハック";

// エラー発生
name = "角田"
定数というのは、値の上書きが出来ない箱だよ!


じゃあ変数と定数、どっちを使えばいいの?

結論から言います。
極力定数(const)を使いましょう!

なぜなら、定数は前述したとおり上書きができません。

つまり、想定外のタイミングで値が書き換わる可能性が0なので
思わぬバグを防ぐ事ができます。

この考えを徹底することで
変数(let)で宣言されているものに関しては
「ふむふむ、これはどこかで値が書き換わるんだな」
と判断ができる、という副次的なメリットもあります。

ややこしくなるので、今回は割愛しますが
定数宣言されたオブジェクトや配列の”中身”は更新できます。
詳しくは今後解説します。

可能な限り定数(const)を使おう!


おまけ:宿題

・nameという定数を宣言し、あなたの名前を代入する
・jobという変数を宣言し、あなたの職業を代入する
・「私の名前は〇〇です。職業は✕✕です。
 というログを出してください。
・jobの値を上書きし
私の名前は〇〇です。職業はエンジニアです。
 というログを出してください。

実行環境が無い方はオンラインで動かしてみてください。

宿題の答えはまとめの最後に書いてるよ!
頑張って解いてみてね!


まとめ

  • 変数や定数とは、値を入れておく”箱”の名前
  • 変数(let): 値が上書き可能
  • 定数(const): 値が上書きできない
  • 基本的には定数を使い、上書きが発生する場合のみ変数を使う
変数と定数が理解できてえらい!
エンジニアとしての大きな一歩を歩んだよ!


宿題の答え

// 定数宣言
const name = "サメハック";

// 変数宣言
let job = "販売員";

console.log("私の名前は" + name + "です。職業は" + job + "です。");
// 私の名前はサメハックです。職業は販売員です。

// 変数の上書き
job = "エンジニア";

console.log(`私の名前は$nameです。職業は$jobです。`);
// 私の名前はサメハックです。職業はエンジニアです。

※ログの出し方は2種類書きましたが、どっちでもOKです!

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈

サメハック。

サメハック。

タイトルとURLをコピーしました