if-elseにおける中括弧の省略の問題
JavaScriptが上述の中括弧の省略を許容しているにもかかわらず、 一般的にはそのように記述することをお勧めしません。 なぜなら、それは微妙なバグの温床となるからです。 例えば、次のようなコードがあるとします:
let test = 3;
if (test > 0)
console.log(test);
ここで、条件が満たされた場合に、
テキスト '+++' の2番目のメッセージも出力しようと決めたとします:
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
しかし、中括弧がない場合、条件内にあるのは最初のメッセージのみです。 つまり、最初の行は条件が真の場合に実行されますが、 2行目は常に実行されます。
実際、私たちのコードは次のコードと同等です:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // この行は条件の外に出てしまった
本来、私たちが望んでいたのは次のようなコードです:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // この行は条件内
}
このため、この種のエラーに陥らないよう、 常に中括弧を配置することが推奨されます。