関数

関数定義式

const 定数名 = function() {
  // 処理
};
const helloWorld = function() {
  console.log('Hello');
  console.log('World');
};

helloWorld();

アロー関数

const helloWorld = () => {
  console.log('Hello');
  console.log('World');
};

// ↑↓ 等価

const helloWorld = function() {
  console.log('Hello');
  console.log('World');
};

引数

const helloWorld = (place) => {
  console.log(Hello World from ${place});
};

helloWorld('Japan');
helloWorld('USA');
const helloWorld = (place, name) => {
  console.log(Hello World from ${place}.);
  console.log(I'm ${name}.)
};

helloWorld('Japan', 'Taro');
helloWorld('USA', 'Joe');
const calc = (num1, num2) => {
  console.log(num1 * num2);
};
calc(5, 7);

return

const calc = (a, b) => {
  return a * b;
  console.log('Hello!') // return 以降は実行されない
};

const result = calc(5, 7);
console.log(result);

戻り値による判定

const check = (num) => {
  return num / 2 === 10;
}
console.log(check(30)); // false
console.log(check(20)); // true

関数のスコープ

  • 関数の外側で定義した定数や変数は、プログラムのどこからでも使える
const say = 'Hello!'; // 関数の外

const greeting = () => {
  console.log(say);
}

greeting() // Hello!
console.log(say) // Hello!
  • 関数の内側で定義された定数を関数の外側で使用すると参照エラーになる
const greeting = () => {
  const say = 'Hello!'; // 関数の中
  console.log(say);
}

greeting() // Hello!
console.log(say) // 参照エラー
  • ifswitch などの条件文、forwhile などの繰り返し文などの、中括弧「{}」を使う構文でもスコープを作るため、 外側で使用すると参照エラーになる

オブジェクト内の関数

const toMinutes = {
  calc: (hour, miuntes) => { // オブジェクトのプロパティの値に関数を組み込む
    return hour * 60 + miuntes;
  }
};

console.log(toMinutes.calc(3, 20));
// 「定数名.プロパティ名()」で呼び出し

関数から複数の値を返す

function func(a, b, c) {
  return [a, b, c];
};

console.log(func(1,2,3));
// [ 1, 2, 3 ]