田中久太郎です。

JavaScriptで elseifは使えるんだろうかと疑問に思い、調べてみましたが、
「使えます」と明言したドキュメントを見つけることができませんでした。

ためしに、
 if (〜){〜} elif (〜){〜} else {〜}
というプログラムを作って
elif の箇所を「elsif」とか「elseif」とか「else if」に変えて実行させて
みると、「else if」で普通に動作することを確認しました。(IE5,IE6で確認)

で、ECMAScript Language Specificationをよく読むと

12.5 The if Statement
   Syntax
       IfStatement :
           if ( Expression ) Statement else Statement
           if ( Expression ) Statement

と書かれていて、なんだ else に続くStatementには IfStatementを入れ子に
できるんだ、と納得した次第です。

で、疑問に思ったのが、なんで他の言語で elsif とかいう中途半端な略語の
構文があるのか?というところ。
全部 else if で良さそうなものを、よっぽどタイピングをさぼりたかったの
か、もしくは他の不都合があったのか・・・
どうしてなんでしょうか?

ifなど条件分岐の各言語での違いみたいなものをまとめた文献とかあったら、
ご紹介いただけるとうれしいです。

以下、とりあえず、わかっているもの。

・ELSE IF (JavaScript, Java, C ...)

  IfStatement :
    if ( Expression ) Statement else Statement
    if ( Expression ) Statement
  StatementにはIfStatementも指定できるので
    if ( Expression ) Statement else if ( Expression ) Statement else Statement
  というように入れ子にできる
       
・ELSEIF (VisualBasic...)

  If condition Then
    statements
  ElseIf elseifcondition Then
    elseifstatements
  Else
    elsestatements
  End If

・ELSIF (Perl ...)

  if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK

・ELIF (shell ...)

  if condition1
  then
    command1
  elif condition2
  then
    command2
  else
    command3
  fi

#あ、なんかブロックの括り方に関係ありそうですね・・・


-- 
Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp