function

指定されたパラメータ付きの関数を宣言します。 またFunctionコンストラクタ、 function式を使用して関数を宣言することも可能です。

文法

function name([param,[, param,[..., param]]]) {
[statements]
}
引数 説明
name 関数名を指定します。
param 関数へ渡される引数の名前を指定します。 関数は255個までの引数を持つことが可能です。
statements 関数の本文を構成する文です。

説明

関数宣言を使用して作成された関数は、Functionオブジェクトであり、 全てのプロパティ、メソッド、Functionオブジェクトの振る舞いを持ちます。 関数の詳細な情報については、Functionを参照してください。

また、関数は式を使用して作成することも可能です。(function式を参照)

デフォルトでは、関数はundefinedを返します。 その他の値を返すには、関数は返す値を指定するreturn式を持つ必要があります。

条件による関数の作成

関数は条件による宣言が可能で、 これを行うためにif文の中に関数の宣言を書くことが出来ます。 幾つかの関数は、そのような条件付きの宣言を条件の無い宣言のように扱い、 条件がtrueでもfalseでも関数を作成します。 そのため、これらは使用すべきではありません。

訳注: これが問題になるのは、この"関数の宣言による文"のことのみであり、 式(var func = function(){…};の形式)の使用であれば、問題無いと思われます。

関数定義の事前の取り込みについて

JavaScriptでの関数宣言は関数の定義が先に取り込まれるため、 その関数の宣言より先にその関数を使用することが出来ます。

hoisted(); // "foo"を出力

function hoisted() {
  console.log("foo");
}

下記の例では、function式の場合は先に取り込まれないことに注目してください。

//下記のようなエラーメッセージが表示されて、ここでは使用出来ない
notHoisted(); // TypeError: notHoisted is not a function

var notHoisted = function() {
   console.log("bar");
};

関数の使用例

下記は、商品a、b、cのそれぞれ売れた数を引数として与えた際に、 売上(sales)の総計を返す関数の宣言の例になります。

function calc_sales(units_a, units_b, units_c) {
   return units_a*79 + units_b * 129 + units_c * 699;
}

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

関連項目

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。