JavaScript
初心者

JavaScriptの関数についてメモ

関数を定義する方法

1. function命令を使う

sum.js
function sum(a, b){
  return a + b;
}
console.log('2 + 3 = ' + sum(2, 3));

この方法で定義した関数は呼び出しより後に、位置することが許される

sum.js
console.log('2 + 3 = ' + sum(2, 3));
function sum(a, b){
  return a + b;
}

2. 無名関数を使う

sum.js
var sum = function(a, b){
  return a + b;
}
console.log('2 + 3 = ' + sum(2, 3));

3. 組み込みオブジェクトFunctionをインスタンス化する

sum.js
var sum = new Function('a', 'b', 'return a + b;');
console.log('2 + 3 = ' + sum(2, 3));

4. アロー関数を使う

sum.js
let sum = (a, b) => a + b;
console.log('2 + 3 = ' + sum(2, 3));

可変長引数の関数を定義する方法

仮引数の前に...をつけると、その仮引数は配列として動作する。

sum.js
sum = function(...numsArray){
  let result = 0;
  for (let elm of numsArray){
    result += elm;
  }
  return result;
}
console.log('sum(1, 2, 3) :' + sum(1, 2, 3));

参照渡しと値渡し

JavaScriptにおける関数は実引数として基本型を与えると値渡しで動作して、参照型を与えると参照渡しで動作する。

引数の数をチェックする方法

 argumentsオブジェクトを使う

sum.js
sum = function(a, b){
  if(arguments.length != 2)
    return 'err';
  return a + b;
}
console.log('sum(1, 2, 3) :' + sum(1, 2, 3));

引数のデフォルト値を設定する方法

 1.undefinedかどうか自分でチェックする

arg_default.js
getPayment = function(price, o_tax){
  if(o_tax == undefined)
    o_tax = 1.08;
  return price * o_tax;
}
console.log('getPayment(500) :' + getPayment(500));
console.log('getPayment(500, 1.1) :' + getPayment(500, 1.1));

 2.仮引数に=をつける

arg_default.js
getPayment = function(price, o_tax = 1.08){
  return price * o_tax;
}
console.log('getPayment(500) :' + getPayment(500));
console.log('getPayment(500, 1.1) :' + getPayment(500, 1.1));

一部のプロパティだけ利用する関数

仮引数には使用したいプロパティだけを指定する。

func_test.js
getId = function({id}){
  return id;
}
person_A = {
  id   : 1,
  name : 'Jim'
}
console.log('id : ' + getId(person_A));