第6章 関数
関数の基本
関数は一連の処理をひとまとめにしたものです。functionキーワードを使って定義します。
function greet() {
console.log("こんにちは!");
}
greet(); // こんにちは!
関数宣言と関数式
関数は2つの主な方法で定義できます。
関数宣言
function sum(a, b) {
return a + b;
}
console.log(sum(2, 3)); // 5
関数式
const product = function(x, y) {
return x * y;
}
console.log(product(4, 5)); // 20
即時関数 (IIFE)
関数を定義と同時に実行することができます。これは変数のスコープを制限するためによく使用されます。
(function() {
var localVariable = "私はローカルです";
console.log(localVariable); // 私はローカルです
})();
アロー関数
ES6から、短い構文で関数を書く方法が追加されました。
const square = x => x * x;
console.log(square(6)); // 36
デフォルト引数
関数の引数にデフォルトの値を設定することができます。
function show(message = "デフォルトのメッセージ") {
console.log(message);
}
show(); // デフォルトのメッセージ
show("カスタムメッセージ"); // カスタムメッセージ
残余引数 (Rest parameters)
複数の引数を配列として受け取ることができます。
function logArgs(...args) {
console.log(args);
}
logArgs(1, 2, 3, 4); // [1, 2, 3, 4]
スプレッド構文を用いた引数
配列の各要素を個別の引数として関数に渡すことができます。
const numbers = [1, 2, 3];
function sum(x, y, z) {
return x + y + z;
}
console.log(sum(...numbers)); // 6
コールバック関数
関数は他の関数に引数として渡されることができます。
function process(callback) {
callback();
}
process(() => console.log("コールバックが実行されました!"));
練習問題1.
以下の要件を満たす関数multiplyを作成してください。
2つの数値を引数として受け取ります。
2つの数値の積を返します。
練習問題2.
以下の要件を満たすアロー関数isEvenを作成してください。
1つの数値を引数として受け取ります。
引数が偶数の場合、trueを返します。奇数の場合、falseを返します。
練習問題3.
以下の要件を満たす関数greetを作成してください。
1つの文字列(名前)を引数として受け取ります。この引数はデフォルトで"Guest"という値を持っています。
Hello, [名前]!という形式で挨拶の文字列を返します。引数が渡されなかった場合、Hello, Guest!という文字列を返します。