スポンサーリンク

【JavaScript】変数はどれを使えばいいの?

programming_studyCode

プログラミング学習を続ける中で、変数が2種類出てきました。
let と varですね。
どちらを使えばいいのか、どう使い分けるのか、まとめておきます。

定数と変数の違い

定数とは、変化させない値(文字含む)ということになります。
つまり、再代入はNG
定数ではconstを使います。
定数はconst一択です。
基本は、constを用いて記述していけば、高校の授業で扱うレベルのJaveScriptであればいいように感じます。
変数扱いする場合だけ、次の話をしていけばいいのでしょう。
この変数、再代入がOKということで、jQueryなんかではこちらが必要になってきます。

varの特徴

変数を扱う変数宣言に、昔からvarが使われてきました。
アシアルのMonacaでも、ProgateのjQueryでもvarで宣言していきます。
こいつは「関数スコープ」と呼ばれ、関数内(つまりfanctionの中)ならどこからでも参照できます。
後ろの方で宣言しても、先頭で定義したものとしてみなされます。
↑ここに若干の厄介さがあるようですね。

letの特徴

JaveScript ES6から搭載されたようです。
ProgateのJaveScriptコース(ES6)に、しれーっと登場します。
ドットインストールでは、こちらを推奨していますね。
基本的にvarはletに置き換え可能なんだそうです。
「ブロックスコープ」と呼ばれ、ブロック({}の中)のみで使う宣言にすることもできるので、スコープする範囲を狭められる特徴があります。
ということは、ブロックの外で実行すると、宣言した変数にアクセスできないのです。
↑これで不便ということではなく、プログラムする際にどこで何の処理が行われるか整理しながら記述できるわけですね。

じゃあどっち?

高校の授業で扱うのであれば、letで教えれば現状はいいということでしょう。
varの特徴を活かす場面もありそうですが、生徒が記述したプログラムでエラーが起きた時に、気づけない可能性がありそうです。
今後、私の教材開発では、当面letで進めようと思います。
詳しい説明は、以下の記事から一部引用させていただきました。

var/let/constの使い分けのメモ - Qiita
グローバルスコープ トップレベルに変数や関数を置くと、それはどこからでもアクセスできるグローバルオブジェクトになる 別のJSファイルに書いたとしても、同様にグローバル扱いになる 関数スコープ functionの中に書...

まとめ

やはり、プログラミングの世界は日々進化しているということがわかります。
同じ教材を使いまわしているようでは、情報の教員として厳しいということですね。
生徒に負けず、日々勉強していく必要があります。

コメント

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