ECMAScript arguments オブジェクト

関数とは何ですか?

関数はどこでもいつでも実行できるコードのセットです。

関数は ECMAScript の核心です。

関数は、以下のように宣言されます:キーワード function、関数名、引数のリスト、括弧内の実行されるコード。

関数の基本的な文法は以下のようです:

function functionName(arg0, arg1, ... argN) {
  statements
}

例えば:

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

関数はどう呼び出すのでしょうか?

関数は、名前と括弧内の引数(複数の場合もあります)で呼び出されます。

上記の例の関数を呼び出したい場合は、以下のコードを使用できます:

sayHi("David", " Nice to meet you!")

上記の関数 sayHi() を呼び出すと、警告ウィンドウが生成されます。あなたはこの例を自分で試してみてください。

関数はどうやって値を返すのでしょうか?

関数sayHi()は値を返さないが、特別に宣言する必要はありません(Javaでvoidを使用するように)。

関数が実際に値を持っている場合でも、明示的に宣言する必要はありません。関数は、return演算子の後ろに値を付けるだけで十分です。

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

以下のコードでは、sum関数が返す値を変数に割り当てます:

var iResult = sum(1,1);
alert(iResult);	//"2"を出力"

また、Javaと同様に、関数はreturn文が実行された後すぐにコードの実行を停止します。したがって、return文の後のコードは実行されません。

以下のコードでは、alertウィンドウは表示されません:

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

関数には複数のreturn文を持つことができます。以下のように:

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  } else {
    return iNum2 - iNum1;
  }
}

上の関数は、二つの数の差を返すために使用されます。これを実現するには、大きな数から小さな数を引く必要があるため、if文を使用してどのreturn文を実行するかを決定します。

関数が戻り値を持たない場合、return演算子を引数なしで呼び出すことで、関数からいつでも退出することができます。

例えば:

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

このコードでは、sMessageが"bye"に等しい場合、警告ボックスは表示されません。

注記:関数が明確な戻り値を持たない場合、または引数のないreturn文を呼び出した場合、実際に戻る値はundefinedです。