197
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScriptAdvent Calendar 2017

Day 12

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

Last updated at Posted at 2017-12-05

はじめに

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

最後に

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

197
66
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
197
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?