見出し画像

JSの基本構文(宣言について)

前回に引き続きJSについて語れたらと思います。

前置き

まずJSの基本構文と言っても、前回お話した通り、2015年を境に書き方にも変化があり、旧来の書き方でも動きはしますが、新しく制定された書き方でコーディングする事でより厳密に・柔軟なコードを書く事ができます。
ですので、今回ご紹介するのはES6(ECMAScript 2015)以降から今に至るまでの構文でご紹介させていただきます。(旧来の方法でも勿論各場面はありますよ!)

基本構文

まずは変数の宣言ですが、

var, let, const

とありますが、私個人としてはとりあえずletを使っておけば良いんじゃないかとは思います…
この3種何が違うのかご説明しましょう。

var : 再宣言・再代入が可能な変数
let : 再宣言不可・再代入可能な変数
const : 再宣言・再代入不可な変数

ざっくりと…というか、これが本質なのですが、varはなんでもありです。
ですので、「あれ、この変数の中身今なんだっけ?」や「気付いたら再宣言していた」なんて事が起こり得るわけです。

あとはお分かりになると思いますが、待っているのはカオスです。
ですので、個人的にはletを使っておけば良いという感想になってしまうわけです。
(constが一番やろ!ってのも正義です)

ですがvarはとても汎用的です。
使い方に注意さえすれば、上記で言っていたような問題は起きません。
むしろ使いやすいです。
より厳密で事故が起きない環境を作るならlet · constなのかなぁ…と言った所でしょうか。

では、let · constの何が良いのか。深堀りしていきましょう。

閑話休題

ここまで宣言について話してきましたが、私の中での大前提としてstrictモードでコーディングする。という事です。

strictモードについて説明したいと思います。

strict モードでは、従来は受け入れていた一部のミスをエラーに変更します。JavaScript は未熟な開発者にも易しいように設計され、またエラーとすべき操作の一部をエラーとして扱いません。これにより当面の問題を解決したことがありますが、後により大きな問題を引き起こしたこともあります。strict モードではこれらのミスをエラーとして扱うことで、開発者は気づいて修正するようになります。
転載元 : MDN web docs(Mozilla)

と、言ったように単純なミスがエラー扱いとなり、より厳密にコーディングが行えます。
メリット・デメリットがあるので一概には言えませんが…

letの罠

さて、本題ですが、実はletにも罠があります。
(先に述べたstrictモードを使用しない前提でお話します。)

例えば、ソースコードが大きくなればなるほど起こり得ますが、いつ・どこで再代入されるか分からないといった点があり、要は読み手の負担が単純に増えます。
その点constで運用されている場合、再代入・再宣言がないので上記のような事は起こりえません。

また、constを使用しない懸念点として、不慮の事故でグローバル変数が生まれてしまう事です。

以上を踏まえると「え、結局constが一強じゃん…」って声が聞こえてきそうですが、間違いではないんですよね…

const > let > varの序列はこれで間違い無いです。はい。

割と初心者よりの記事と言うこともあり、letをお勧めしました。

まずはvarからの脱却が目的でしたので、const信仰がある方済みません…w

今回のまとめ

宣言に関してしか触れられませんでしたが、varにも、letにも、constにもそれぞれメリットがあり、そしてデメリットもあるのです。

”どれを使ったっていいじゃない 変数だもの”

正しい場面で正しい振る舞いをする様に、書ければ良いのです。

良し悪しをしっかり理解した上で使えるかが問われます。(基礎、大事。)

参考までに公式リファレンスを参照していただければと思います。

varについて

letについて

constについて


今回はここまでです。

次回のネタ考えておきます。

この記事が気に入ったらサポートをしてみませんか?