Edited at

全俺がビックリ JavaScriptに「else if」構文は存在しなかった!

More than 1 year has passed since last update.


はじめに

JavaScript Advent Calendar 2017 - Qiitaの12日目の記事です。

なぜか間違えて一週間早く投稿しちゃっていますね。なんででしょうね?


導入

今日も軽快にelse ifしてますか?:champagne:

日常的に何気なく使っているJavascriptのelse ifですが、

実はそんな構文存在しなかったんです!!:hatching_chick:


else ifいつも使ってるよって

ええ、僕も使ってますよ。こんな風にね。


// パターンA
if(gender === '男性'){
console.log('興味がありません');
}else if(gender === '女性'){
console.log('大好きです');
}else{
console.log('仲良くなってみたいです');
}

// パターンB
if(gender === '男性')
console.log('興味がありません');
else if(gender === '女性')
console.log('大好きです');
else
console.log('仲良くなってみたいです');

でも実際はelseifのネストで生成されていたんです。


「else if」は「else」と「if」の合わせ技

このことは公式にリファレンスにも記述されています。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/if...else

上記のソースが適切にインデントされていたらこんな感じです。

// パターンA

if(gender === '男性'){
console.log('興味がありません');
}else
if(gender === '女性'){
console.log('大好きです');
}else{
console.log('仲良くなってみたいです');
}

// パターンB
if(gender === '男性')
console.log('興味がありません');
else
if(gender === '女性')
console.log('大好きです');
else
console.log('仲良くなってみたいです');


最後に

まとめてみるとかなり短くなってしまいましたね。

でも僕自身この事実を知った時に「な...なんだってー」となったので共有したいなと思いました。

知らないだけでこう言ったことって多いんですかね...