function 宣言は、指定されたパラメータで関数を宣言します。
Function
コンストラクタや function 演算子
(function 式) を使っても関数を宣言できます。
書式
function name([param,[, param,[..., param]]]) { [statements] }
name
- 関数名。
param
- 関数に渡される引数の名前。関数は最大255の引数を持てます。
statements
- 関数の本体を構成する文。
説明
function
文で作成された関数は Function
オブジェクトであり、Function
オブジェクトの全てのプロパティ、メソッド、振る舞いを持ちます。関数についての詳しい情報は Function
を見てください。
関数は式の中でも宣言できます (関数式
をご覧ください)。
デフォルトでは、関数は undefined
を返します。値を返すには、関数は必ず戻り値を指定する return
文を持たなければなりません。
条件付きで作成する関数
関数は条件文中でも宣言させられます。つまり、関数定義は if
ステートメント内でネストさせられます。Mozilla を除くほとんどのブラウザはこのような条件付き宣言を条件なしとして扱い、条件が真であるかに関係なく関数を作成します。概要はこちらの記事をご覧ください。これらは使用するべきではなく、条件付き作成には関数式を使用します。
関数宣言の巻き上げ
JavaScript の関数宣言は、関数の定義を巻き上げます。関数を宣言する前に使用することができます:
hoisted(); // logs "foo" function hoisted() { console.log("foo"); }
関数式
は巻き上げられませんので注意してください:
notHoisted(); // TypeError: notHoisted is not a function var notHoisted = function() { console.log("bar"); };
例
例: function
を使う
次のコードは、商品 a
、b
および c
の販売個数が与えられたときに、売上全体の総額を返す関数を宣言します。
function calc_sales(units_a, units_b, units_c) { return units_a*79 + units_b * 129 + units_c * 699; }
仕様
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
sloppy モードで許可 | 49.0 |
機能 | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
基本サポート | 未サポート | (有) | (有) | (有) | (有) | (有) | (有) |
sloppy モードで許可 | 未サポート | 49.0 | 49.0 |