3
3

More than 5 years have passed since last update.

関数

Posted at

関数の定義と呼び出し

関数は次のように定義する。(下の様なイメージ)

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(); //=> ともちゃん今日は!

関数00.png

引数

引数とは、「関数に渡すことが出来るデータ」のこと。
以下の場合add(a, b)abが「引数」です。

実際に引数を使った関数とその呼び出しです。

// 関数の定義
function add(a, b) {
    var result = a + b;
    document.write(result);
};

// 関数の呼び出し
add (1, 1); //=> 2
add (10, 20); //=> 30

引数.png

•重要なのは、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)がでる

引数2.png

戻り値の使用

↓が「関数の定義-戻り値あり」のイメージである。

// 関数の定義
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

戻り値.png

関数には「何かを返す関数」と、「処理だけ行って何も返さない関数」がある。
例えばdocument.writeは「ドキュメントとして書き出す」という処理だけ行って何も返さない関数です。(正確にはundefinedが返ります)

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3