JavaScript varを使わずにconst/letを使えと言われるが
当方JavaScript歴3週間目です。長らくPythonを扱ってきたので変数のスコープはグローバルか否かの2種類しか存在しなかったのですが、先日JavaScriptにはvar
を付けるか付けないか以外にもlet
やconst
といったスコープが存在することを認知いたしました。
両者の違いは理解したのですが、いざ自分の書いたソースコードをlet
とconst
のみで書き直してみるとなると、どうしてもvar
が良いというところが出てきてしまいます。
function hoge( hoge1, hoge2 ) {
if ( hoge1 === "abc" ) {
var hoge3 = "def";
} else if ( hoge1 === "def" ) {
var hoge3 = "ghi";
}
return hoge1 + hoge2 + hoge3;
}
上記のソースコードで言うと、「hoge1
の値によって hoge3
の値を変更したいけど、hoge3
はブロック外でも扱いたい!」といった感じです。(ただし本来はもっと長い処理を含むので、if
毎にreturn
するとソースコードが長くなってしまいます)
インターネット上の情報を見る限り、安全性が高いとかなんとかで「varは必要無い」といった意見が多く見られるのですが、このように関数内で共通の変数を宣言したい場合は、今でもvar
を使って良いのでしょうか...?
あるいはもっと良い方法があればご教授いただけるとありがたいです!よろしくお願いします。