【Javascript】if文内で変数を定義する場合のコード。

まずif文内で変数定義する時考えること

if文内で定義した変数を「if文外で使用するかどうか」という点です。

if文中だけで使用する場合は、通常通り「const」で問題ありません。

一方で、if文外でも使用したい場合は次の2つの方法で処理します。

if文中にif文外でも利用可能な変数の書き方

方法1:if文外で「let」「var」で定義する【推奨】

constは再代入ができないので、「let」または「var」でif文外に変数定義します。

ただし、「var」は意図しないバグが起こりやすいため「let」

let b;      // 変数定義

if (〇〇) {
    b = 1;  // 再代入
};

console.log(b)
// 1

方法2:if文中に「var」で定義する

「var」はバグを起こしやすいので、

if (〇〇) {
    var a = 1;  // 変数定義
};

console.log(a);
// 1

おまけ:「var」はできるだけ使わないほうがいい

varは再宣言ができてしまったり、巻き上げによる影響を受けたりによって、意図しない挙動になってしまう場合があるのであまり使わない方がいいそうです。

varが良くないとされる理由は、おおむね以下の2点に集約されると思います。

1. 変数を簡単に書き換えられてしまうと、意図しないバグが発生するため
2. letやconstに比べて、varは巻き上げ時のバグを生み出しやすいため

参考:JavaScriptでvarが非推奨な理由を整理してみた

コメントを残す

*