蓄積するJavaScriptカスタム関数

WBOY
WBOYオリジナル
2023-05-12 14:29:37907ブラウズ

JavaScript は、Web アプリケーションの作成に使用される高級プログラミング言語であり、その強力な機能と幅広い用途により、Web 開発に必須のツールの 1 つとなっています。 JavaScript では、カスタム関数は、独自のニーズに応じて関数を作成したり呼び出したりできるようにする非常に重要なテクノロジです。今回はJavaScriptのカスタム関数を使って蓄積する方法を紹介します。

累積とは何ですか?

累積とは、一連の数値内のすべての数値を加算することです。たとえば、一連の数値 1、2、3、4、5 がある場合、累積結果は 15 (つまり、1 2 3 4 5) になります。

JavaScript カスタム関数を使用して蓄積する方法?

JavaScript カスタム関数を使用して蓄積するには、変数、ループ、条件文を使用する必要があります。

以下は最も単純な累積プログラムです:

function sum(arr) {
  var s = 0;
  for (var i = 0; i < arr.length; i++) {
    s += arr[i];
  }
  return s;
}

var arr = [1, 2, 3, 4, 5];
console.log(sum(arr)); // 15

このプログラムを段階的に分解してみましょう:

  1. まず、sum という関数を定義します。関数には 1 つのパラメータ arr があります。この関数は、一連の数値の合計である数値を返します。
  2. 変数 s を使用して累積結果を保存し、それを 0 に初期化します。ここでは、キーワード var を使用して変数を宣言します。キーワード var は、 s が現在の関数でのみアクセスおよび使用できるローカル変数であることを示します。関数の外で変数を定義すると、それはグローバル変数となり、プログラム内のどこでも使用できます。
  3. 次に、ループを使用して、数値シーケンス内の各要素を反復処理します。ループ変数 i は 0 に初期化され、i が arr.length に等しくなるまで毎回 1 ずつ増加します。
  4. ループ内では、s = arr[i] を使用して、現在の要素の値を累積結果に追加します。これは、s = s arr[i] と同等の単純な省略形です。
  5. 最後に、return s ステートメントを使用して累積結果を返します。

sum 関数を呼び出し、一連の数値を渡すことで、これをテストできます。この例では、数値シーケンス arr = [1, 2, 3, 4, 5] を定義し、console.log 関数を使用してその累積結果を出力します。

上記のプログラムは、蓄積用の JavaScript カスタム関数の最も基本的な形式です。ただし、まだ多くのことが望まれています。

エラー処理

前のプログラムは、入力データが正しく有効であると想定し、直接計算を実行します。ただし、実際のアプリケーションでは、誤った入力データやその他のエラーが発生する可能性があります。

より堅牢なプログラムを作成するには、いくつかのエラー処理メカニズムを追加する必要があります。以下は、改良された蓄積プログラムです:

function sum(arr) {
  if (!Array.isArray(arr)) {
    throw new TypeError('sum() expects an array as parameter.');
  }
  var s = 0;
  for (var i = 0; i < arr.length; i++) {
    if (typeof arr[i] !== 'number') {
      throw new TypeError('sum() expects an array of numbers.');
    }
    s += arr[i];
  }
  return s;
}

var arr = [1, 2, 3, 4, 5];
console.log(sum(arr)); // 15
console.log(sum('12345')); // TypeError: sum() expects an array as parameter.
console.log(sum([1, '2', 3, 4])); // TypeError: sum() expects an array of numbers.

このバージョンでは、2 つのエラー処理条件を追加しました:

  1. 渡されたパラメータが配列でない場合、A をスローします。型エラー(TypeError)が発生しました。
  2. 配列内に数値ではない要素がある場合にも、型エラーがスローされます。

エラー処理により、プログラムの堅牢性と信頼性が大幅に向上し、予期せぬ状況でも関数が正しく実行できるようになります。

関数シグネチャ

プログラミングでは、関数シグネチャとは、関数の名前、パラメータ、戻り値の型を指します。関数のシグネチャを決定すると、関数をより簡単に理解して使用できるようになります。

関数シグネチャには次のものが含まれている必要があります:

  1. 関数名: これは関数の動作を説明するテキスト文字列である必要があります。たとえば、上記の関数名 sum はその動作をよく表しています。
  2. パラメータ: これは、関数への入力を説明するテキスト文字列である必要があります。累積関数の場合、配列パラメーター arr のみが必要です。
  3. 戻り値の型: これは、関数の戻り値の型を説明するテキスト文字列である必要があります。累積関数の場合、数値を返すことが期待されます。

累積関数の場合、次のように関数に署名できます:

sum(arr: Array) => Number

これは、sum 関数が次のように要求することを示します。パラメータとして配列を受け取り、結果として数値を返します。

高階関数

JavaScript では、高階関数とは、関数を入力として受け取るか、関数を出力として返す関数です。高階関数を使用して一般的な操作をカプセル化し、それらをさまざまなデータ型や条件に適用できます。

たとえば、配列内の各要素に演算を適用できる一般的なマップ関数を作成できます。この関数の書き方を見てみましょう:

function map(arr, f) {
  if (!Array.isArray(arr)) {
    throw new TypeError('map() expects an array as parameter.');
  }
  if (typeof f !== 'function') {
    throw new TypeError('map() expects a function as second parameter.');
  }
  var result = [];
  for (var i = 0; i < arr.length; i++) {
    result.push(f(arr[i]));
  }
  return result;
}

var arr = [1, 2, 3, 4, 5];
console.log(map(arr, x => 2 * x)); // [2, 4, 6, 8, 10]

var words = ['JavaScript', 'is', 'awesome'];
console.log(map(words, w => w.toUpperCase())); // ['JAVASCRIPT', 'IS', 'AWESOME']

この関数は、配列 arr と関数 f の 2 つのパラメーターを受け取ります。関数 f は配列内の各要素に適用され、計算結果を返します。

map 関数を使用すると、数値配列の各要素の乗算や文字列配列の各要素の大文字変換など、さまざまな演算を適用できます。マップ関数は一般的な操作であるため、一度定義するだけで、複数のシナリオで使用できます。

概要:

この記事の導入部を通じて、JavaScript カスタム関数を使用して蓄積する方法を学びました。エラーの処理方法、関数シグネチャの定義方法、高階関数の使用方法を学びました。 JavaScript カスタム関数は非常に柔軟で強力なので、独自のニーズに応じて関数を作成および呼び出しできるため、コードの再現性と保守性が向上します。

以上が蓄積するJavaScriptカスタム関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。