JS関数定義と関数呼び出し

3929 ワード

これは関数に関するモダンJavaScript deep diffという本をもとに整理された文章です.

関数とは?



数学の関数とプログラミングの関数には大きな違いはありません.
x+yでxが1,yが2のInputをそれぞれ代入すると,3のOutputが現れる.
プログラミング中の関数として考えてみましょう.addという関数があり,x,yを加えるとx+y値が得られる.関数を呼び出すことで、xとyの値にそれぞれ1と2を加算し、同様に3という**戻り値**を得ることができる.
ここでxとy,入力を渡す変数をパラメータ(parameter)と呼び,実際にパラメータに入れる値1と2をパラメータ(parament)と呼ぶ.関数の戻り値(returnvalue)は、関数の実行時に現れる出力値であり、戻り値を別途書かない場合はundefinedを返します.
関数の作成(定義関数)と呼び出し関数を区別できるはずです.関数を呼び出すだけで戻り値が得られるからです.

関数の定義(関数定義)カンスウノテイギ


関数を定義するには、次の4つの方法があります.

1.関数宣言

function add(x, y) {
  return x + y;
}
すべての宣言は、実行時の前にJavaScriptエンジンによって最初に実行されます.関数宣言も宣言であるため、実行時までに実行されるため、定義する前に関数を使用できます.関数宣言がコードの一番上にドラッグされるように、関数エスケープ(昇格)が発生します.

2.関数式

var add = function (x, y) {
  return x + y;
}
関数ライブラリで生成された関数オブジェクトを変数に割り当てる方法.関数の名前は省略できます.

3.Functionコンストラクタ

var add = new Function('x', 'y', 'return x+y');

4.矢印関数

var add = (x, y) => x + y;
他の関数とは異なり、矢印関数には独自のthisはありません.矢印関数の内部で、this、arguments、super、new.targetを参照すると、上司を参照します!

関数呼び出し


関数を呼び出すときは、識別子と関数呼び出し演算子の2つのカッコに引数を付けるだけで、その関数が何であるかを知ることができます.下図のように!
add(1, 2);
関数の戻り値を変数に割り当てて、あちこち書けばいいです.
var result = add(1, 2)
パラメータがあるがパラメータが割り当てられていない場合、パラメータにはundefinedが含まれます.引数が引数より大きい場合は、超過引数から無視します.