69
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

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

はじめに

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('仲良くなってみたいです');
  

最後に

まとめてみるとかなり短くなってしまいましたね。
でも僕自身この事実を知った時に「な...なんだってー」となったので共有したいなと思いました。
知らないだけでこう言ったことって多いんですかね...

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
69
Help us understand the problem. What are the problem?