MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

function キーワードは、式の中で関数を定義するために使用されます。

構文

function [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

引数

name
関数名。省略可。省略した場合、関数は無名関数として認識されます。name は関数内でローカルです。
paramN
関数に渡される引数の名前です。
statements
関数の本体を構成するステートメントです。

説明

関数式は関数宣言とよく似ており、ほとんど同じ書式でもあります(※参照: function )。関数式と関数宣言の主な相違点は、関数名です。関数式では、匿名関数を生成するために、関数名を省略できます。 関数式は、定義するとすぐに実行する IIFE (即時実行関数)として使用できます。詳細については、 functions の章を見てください。

次の例では、引数の 2 乗を返す無名の関数を定義し、x に割当てています。

var x = function(y) {
   return y * y;
};

名前付き関数式

関数内でその関数自身を参照する必要がある場合は、名前付き関数式にする事でこれを実現できます。この名前は関数内(スコープ)のローカルです。非標準ではありますが、これは arguments.callee を用いて避けることもできます。

var math = {
  'factorial': function factorial(n) {
    if (n <= 1)
      return 1;
    return n * factorial(n - 1);
  }
};

仕様

仕様 ステータス コメント
ECMAScript 2017 Draft (ECMA-262)
Function definitions の定義
ドラフト  
ECMAScript 2015 (6th Edition, ECMA-262)
Function definitions の定義
標準  
ECMAScript 5.1 (ECMA-262)
Function definition の定義
標準  
ECMAScript 3rd Edition (ECMA-262)
Function definition の定義
標準 初期定義。JavaScript 1.5 で実装。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, teoli, ethertank, Potappo
 最終更新者: YuichiNukiyama,