解 説

FUNCTION関数

JavaScriptの自作関数はfunction statementで定義します。
functionキーワードと、関数の名前、引数は丸括弧でくくり、カンマで区切ります。そして命令文は波括弧 { } でくくります。

デフォルト引数を指定したい場合は次のようにif文を使用して記述します。

function greet(){
  if(typeof firstName === 'undefined'){firstName = '権兵衛'}
  if(typeof lastName === 'undefined'){lastName = '名無し'}
  return 'Hello ' + firstName + ' ' + lastName;
}

console.log(greet());

けれどもES6からはデフォルト引数の指定が簡単になりました。
ES6のデフォルト引数の例

function greet(firstName = '権兵衛', lastName = '名無し'){
  return 'Hello ' + firstName + ' ' + lastName;
}

無名関数

無名関数は関数名を指定せずに関数を定義したもので、コールバック関数などでよく使用されます。
また、変数に代入することも可能です。その場合は変数名に()を付けて呼び出します。

無名関数の例

const square = function(x = 3){
  return x*x;
};

console.log(square());

即時関数

即時関数は、呼んで字のごとく、即時に実行される関数のことです。
つまり、関数定義と関数の呼び出しをまとめたものです。

(function(name){
   console.log('Hello '+ name);
})('Tahara');