Roa run dev

JavaScriptの関数の基本を学ぼう!

●目次

    JavaScriptの関数は、コードを再利用しやすくし、プログラムを効率的に書くための重要な要素です。

    関数とは?

    関数は、一連の処理をまとめたブロックで、何度でも呼び出して使うことができます。

    関数を使うことで、重複するコードを減らし、メンテナンスしやすいコードを書くことができます。

    関数-基本構文
    function 関数名(引数1, 引数2, ...) {
      // 処理内容
      return 戻り値;
    }

    関数の種類

    JavaScriptには、いくつかの関数の書き方があります。それぞれの書き方には特性があるため、使い分けが重要です。

    関数宣言

    最も一般的な書き方で、function キーワードを使って関数を定義します。

    関数宣言された関数は、コードのどこからでも呼び出せます。

    js
    function greet(name) {
      return "Hello, " + name + "!";
    }
    
    console.log(greet("Alice")); // "Hello, Alice!"

    関数式

    変数に関数を代入する形で定義する方法です。

    この場合、関数が定義された後でないと呼び出せません。

    js
    const greet = function(name) {
      return "Hello, " + name + "!";
    };
    
    console.log(greet("Bob")); // "Hello, Bob!"

    アロー関数

    ES6で導入されたシンプルな構文の関数です。

    特にコールバック関数でよく使われ、thisの扱いが通常の関数と異なる特徴があります。

    js
    const greet = (name) => "Hello, " + name + "!";
    
    console.log(greet("Charlie")); // "Hello, Charlie!"

    関数の引数と戻り値

    関数は引数(パラメータ)を受け取り、その結果を return で返すことができます。

    引数(Parameters)

    関数に渡されるデータは引数と呼ばれます。

    引数は、関数に渡す入力データで、関数内部の処理に使われます。

    関数定義時に引数の名前を指定し、関数呼び出し時に値を渡します。

    function add(a, b) {
      return a + b;
    }
    
    console.log(add(2, 3)); // 5
    • デフォルト引数:
      引数に初期値を設定することができ、引数が渡されなかった場合にデフォルト値が使用されます。
    function greet(name = "Guest") {
      return "Hello, " + name + "!";
    }
    
    console.log(greet());         // "Hello, Guest!"
    console.log(greet("David"));  // "Hello, David!"

    戻り値

    関数は return キーワードを使って、計算結果や値を返します。

    戻り値は、関数が実行後に返す出力データで、関数外でその結果を利用するために使います。

    return がない場合、関数は undefined を返します。

    function multiply(a, b) {
      return a * b;
    }
    
    console.log(multiply(4, 5));  // 戻り値 20

    引数は関数の「インプット」、
    戻り値は関数の「アウトプット」として理解するとわかりやすい

    関数のスコープとクロージャー

    関数の中で定義された変数は、関数スコープに属し、関数外からアクセスできません。また、関数は定義された時のスコープを保持するクロージャーという機能を持ちます。

    function outer() {
      let outerVar = "外側の変数";
    
      function inner() {
        console.log(outerVar); // "外側の変数"
      }
    
      inner();
    }
    
    outer();

    コールバック関数

    コールバック関数とは、別の関数に引数として渡される関数のことです。

    非同期処理やイベント処理などで頻繁に使われます。

    function doTask(callback) {
      console.log("タスク開始");
      callback();
      console.log("タスク終了");
    }
    
    function notify() {
      console.log("通知:タスクが完了しました!");
    }
    
    doTask(notify);

    再帰関数

    再帰関数は、自分自身を呼び出す関数です。

    計算のステップを繰り返すことで、複雑な問題を解決する際に使用されます。
    例えば、階乗の計算などで使われます。

    function factorial(n) {
      if (n === 1) return 1;
      return n * factorial(n - 1);
    }
    
    console.log(factorial(5)); // 120

    即時実行関数

    即時実行関数は、定義した直後に実行される関数です。

    スコープの制御や一度だけ実行したい処理に便利です。

    (function() {
      console.log("IIFEが実行されました!");
    })();

    まとめ

    JavaScriptの関数は、単に処理をまとめるだけでなく、引数や戻り値、コールバック、クロージャー、再帰など、さまざまな特性を持っています。

    これらを活用することで、コードがより効率的で再利用可能になります。