みっちぇのWebデザイン研究所

はてなブログのカスタマイズを中心に、ウェブデザインについて研究するブログ

JavaScriptの勉強01【var・let・const】

勉強シリーズ。

基礎の基礎を知る。

勉強のために使用したサイト developer.mozilla.org

とりあえずvarlet(あとconstも)どれを使えばいいのかっていう話をどこかでも見かけたのでもう一度おさらい。

以下サイト様がわかりやすかったです techacademy.jp www.i-ryo.com

【勉強方法】 Chromeデベロッパーツールでコンソールを開いて実行。

MEMO
コンソールのクリアはconsole.clear()で実行。

まず結論

varはなるべく使わない。

再宣言も再代入もできてしまうため、バグの原因に。
また、スコープという変数の効かせられる範囲が大きすぎるため、意図しない挙動になることも。

  • 主に使うのはconst

  • 代入必要ならlet

を使用。

以下挙動の確認。

varで宣言

  1. nameという変数はhogeですよ〜と宣言。
    f:id:micche-labo:20210923144834p:plain
    var変数宣言
  2. 再宣言。nameという変数をhogehogeに上書き。
    f:id:micche-labo:20210923145022p:plain
    var変数再宣言
    できる。
  3. 再代入。name再代入に上書き。
    f:id:micche-labo:20210923150740p:plain
    var変数再代入
    できる。

varはオールマイティどれでもできてしまうが故、意図せずに前に宣言した変数を、知らず知らずのうちに上書きしてしまい、思わぬ挙動になってしまうことがあるので推奨されていない。

次、let

letで宣言

  1. nameという変数はMICCHEですよ〜と宣言。
    f:id:micche-labo:20210923151421p:plain
    letで変数宣言
  2. 再代入。MICCHEmiccheに変更しますよ〜と宣言。
    f:id:micche-labo:20210923151723p:plain
    letで再代入
    できる。
  3. 再宣言。'micche'を'みっちぇ'に上書きするよ〜と宣言。
    f:id:micche-labo:20210923152236p:plain
    letで再宣言
    できないはずなんだけどできた。

これなんで?って思ったんだけど、イベントの中で変数宣言した場合、再宣言できないってことらしいから、イベント何もつけてない状態では上書きもなにもないから再宣言できるってこと?

多分。

ちなみにletで使った変数をvarで宣言し直せるかと思い試すと

f:id:micche-labo:20210923152843p:plain
varで宣言し直せるか

アカンと言われた。

逆も然り。

f:id:micche-labo:20210923152948p:plain
varで宣言したものをletで宣言しなおせるか

constで宣言

  1. nameという変数はみっちぇですよ〜と宣言。
    f:id:micche-labo:20210923153422p:plain
    constで宣言
  2. 再宣言。nameという変数をMiccheに上書きしますよ〜〜と宣言。
    f:id:micche-labo:20210923153523p:plain
    constで再宣言。できない。
    これはできない。
  3. 再代入。nameという変数をmiccheに上書きしますよ〜〜と宣言。
    f:id:micche-labo:20210923153608p:plain
    constで再代入。できない。
    これもアカンと言われた。

constは一番誓約が厳しいイメージ。 再宣言・再代入ができないため、上書きしてしまって予期せぬ不具合を生む心配がないので安心して使用ができる。

まとめ

とりあえずvar、let、constはそれぞれ

変数名 再代入 再宣言
var できる できる
let できる できない
const できない できない

とわかった。