関数の定義と呼び出し
関数は次のように定義する。(下の様なイメージ)
function 関数名(引数, 引数, 引数) {
文;
文;
文;
}
例1
// 関数の定義
function add() {
var a = 10;
var b = 20;
var result = a + b;
document.write(result);
};
// 関数の呼び出し
add(); //=> 30
•オブジェクトのプロパティとして定義する場合
以下の様になる。
var person = {
name: '美浜ちよ',
age: 10,
say: function() {
document.write('ともちゃん今日は!');
}
};
// 関数の呼び出し
person.say(); //=> ともちゃん今日は!
引数
引数とは、「関数に渡すことが出来るデータ」のこと。
以下の場合add(a, b)
のa
とb
が「引数」です。
実際に引数を使った関数とその呼び出しです。
// 関数の定義
function add(a, b) {
var result = a + b;
document.write(result);
};
// 関数の呼び出し
add (1, 1); //=> 2
add (10, 20); //=> 30
•重要なのは、add関数の場合は引数に2つの数値を受け取るので、呼び出すときも2つの数値を指定する必要がある事。
もしこの数を間違えると?
①引数をなしで呼び出すと?
// 関数の定義
function add(a) {
document.write(a);
};
// 関数の呼び出し
add (); //=> undefined
②引数の数が少なかったり、無理な数値で呼び出すと?
// 関数の定義
function add(a, b) {
var result = a + b;
document.write(result);
};
// 関数の呼び出し
add (1); //=> NaN(Not a Number)がでる
戻り値の使用
↓が「関数の定義-戻り値あり」のイメージである。
// 関数の定義
function 関数名() {
処理;
return 戻り値;
}
// 定義した関数の呼び出し
戻り値を入れる変数名 = 関数名();
先ほどの引数を使った例と比べてみましょう
// 関数の定義
function add(a, b) {
var result = a + b;
document.write(result); // add関数の中で出力されてる
};
// 関数の呼び出し
add (1, 1); //=> 2
add (10, 20); //=> 30
下の場合は、add関数の中で出力されないで、いったん値が返され、それを改めて「result1」や「result2」に代入している事です。
// 関数の定義
function add(a, b) {
var result = a + b;
return result; // 戻り値を設定する事で、add関数は引数に指定した数値を「足し算して返す」という関数になる
};
// 関数の呼び出し
var result1 = add (1, 1);
document.write(result1); //=> 2
var result2 = add (10, 20);
document.write(result2); //=> 30
var result3 = add (result1, result2);
document.write(result3); //=> 32
関数には「何かを返す関数」と、「処理だけ行って何も返さない関数」がある。
例えばdocument.write
は「ドキュメントとして書き出す」という処理だけ行って何も返さない関数です。(正確にはundefinedが返ります)