実際の開発では、Arguments オブジェクトが非常に役立ちます。 Arguments オブジェクトを柔軟に使用すると、関数を使用する柔軟性が向上し、抽象プログラミングにおける関数の適応性とエラー修正機能が強化されます。 JavaScript における Arguments オブジェクトの目的の概要。 序文私たちの多くは、コード開発の過程で、Arguments オブジェクトという特別なオブジェクトを使用したことがあると思います。 実際の開発では、Arguments オブジェクトが非常に役立ちます。 Arguments オブジェクトを柔軟に使用すると、関数を使用する柔軟性が向上し、抽象プログラミングにおける関数の適応性とエラー修正機能が強化されます。 では、Arguments オブジェクトはどのように使用すればよいのでしょうか?今日はまとめましょう。 議論の基本概念Arguments は、関数に渡される引数に対応する配列のようなオブジェクトです。 Arguments は配列に似ていますが、配列ではないオブジェクトです。配列と同じアクセス プロパティとメソッドを持っているため、配列に似ています。対応する単一パラメータの値は、 以下は、引数を使用する簡単な例です。 関数func1(a, b, c) { console.log(引数[0]); console.log(引数[1]); console.log(引数[2]); } 関数1(1, 2, 3); // 1 // 2 // 3 関数内の 議論の役割JavaScript の特別なオブジェクトとしての Arguments の用途、または使用方法は何ですか? 実パラメータと仮パラメータの数を取得する関数の実際のパラメータの数を取得するには、arguments.length プロパティを使用します。関数オブジェクトの長さプロパティを使用すると、関数の仮パラメータの数を取得できます。このプロパティは読み取り専用プロパティであり、関数本体の内外で使用できます。 次の例では、関数の仮パラメータと実パラメータが一致しているかどうかをチェックし、一致していない場合は例外をスローする checkArg() 関数を設計します。 関数 checkArg(a) { //関数の実際のパラメータと仮パラメータが一致しているかどうかを確認します。if (a.length != a.callee.length) // 実際のパラメータの数が仮パラメータの数と異なる場合は、エラーがスローされます。 throw new Error("実際のパラメータと仮パラメータが一致していません"); } 関数 f(a, b) { // 2 つの数値の平均を計算します checkArg(arguments); // 引数を使用して、関数の実際のパラメーターと仮パラメーターが一致しているかどうかを確認します return ((a * 1 ? a : 0) + (b * 1 ? b : 0)) / 2; // 平均値を返します } console.log(f(6)); //例外をスローします。パラメータを渡して関数fを呼び出す 実際のパラメータ値を変更する次の例では、for ループを使用して arguments オブジェクトを反復処理し、ループ変数の値を arguments に渡して、実際のパラメーター値の変更を容易にしています。 関数f(){ for (let i = 0; i < arguments.length; i++) { //引数オブジェクトを走査する arguments[i] = i; //各実パラメータの値を変更する console.log(arguments[i]); //変更された実パラメータ値を表示する} } f(3, 3, 6); // 3, 3, 6 の代わりに 0, 1, 2 のプロンプトを返します 引数の数の変更長さプロパティ値を変更することで、関数の実際のパラメータの数も変更できます。長さプロパティ値が増加すると、増加した実際のパラメータ値は未定義になります。長さプロパティ値が減少すると、長さ値の後の実際のパラメータ値は破棄されます。 関数f(){ arguments.length = 2; //argumentsプロパティオブジェクトの長さプロパティ値を変更します for (let i = 0; i < arguments.length; i++) { console.log(引数[i]); } } f(3, 3, 6); //プロンプト3, 3を返す パラメータの有効性を確認する次の例では、arguments.callee を使用して匿名関数を取得し、関数の length プロパティを通じて関数パラメータの数を取得します。最後に、実際のパラメータの数と仮パラメータの数を比較して、ユーザーが渡したパラメータが要件を満たしているかどうかを確認します。 関数 f(x,y,z) { let a = arguments.length; //関数の実際のパラメータの数を取得します。let b = arguments.callee.length; //関数の仮パラメータの数を取得します。if (a != b){ //実際のパラメータと仮パラメータの数が等しくない場合は、エラーメッセージが表示されます。throw new Error("渡されたパラメータが一致しません"); }else { // 実パラメータと仮パラメータの数が同じ場合は、それらの合計を返します return x + y + z; } } console.log(f(3,4,5)); //戻り値12 arguments.callee は関数名と同等です。上記の例では、arguments.callee は f と同等です。 関数パラメータの数が不明な場合、呼び出し関数の実際のパラメータ値にアクセスするために使用されます。関数パラメータの数が不明な場合、または関数に多数のパラメータがあり、各仮パラメータを 1 つずつ定義したくない場合は、パラメータの定義を省略し、関数本体で Arguments オブジェクトを直接使用して、呼び出し元関数の実際のパラメータ値にアクセスできます。 次の例では、引数オブジェクトを使用してパラメータの平均を計算する平均関数を定義します。関数を呼び出すときに、任意の数のパラメータを渡すことができます。 関数avg() { //平均値を求める let num = 0; let length = 0; //一時変数を宣言して初期化する for (let i = 0; i < arguments.length; i++) { //すべての実パラメータを走査します if (typeof arguments[i] != "number") { //パラメータが数値でない場合は続行します。 //パラメータ値を無視します} num += arguments[i]; //パラメータの数値の合計を計算します length++; //合計演算に関係するパラメータの数を計算します} return num / length; //平均値を返す} console.log(avg(1, 2, 3, 4)); // 2.5 を返します console.log(avg(1, 2, "3", 4)); // 2.33333333333333335 を返します 実際のパラメータの値を走査またはアクセスする引数オブジェクトは配列ではなく疑似配列です。length 属性と括弧構文を使用して、実際のパラメータの値を走査したり、値にアクセスしたりできます。ただし、動的呼び出しメソッドを通じて、push、pop、slice などの配列メソッドを使用することもできます。 次の例では、動的呼び出しメソッドを使用して、引数オブジェクトが配列メソッド slice() を呼び出して、関数パラメーター オブジェクトを配列に変換します。 関数f(){ [].slice.apply(引数)を返します。 // 次の式も使用できます // return Array.from(arguments); // [...引数] を返します。 } console.log(f(1, 2, 3, 4, 5, 6)); //[1,2,3,4,5,6]を返します 要約する上記は、Arguments オブジェクトの実用的な使用法のまとめです。Arguments を柔軟に使用して、詩的なコードを書けるようになることを願っています。 JavaScript での Arguments オブジェクトの使用に関するこの記事はこれで終わりです。JavaScript での Arguments オブジェクトの使用に関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
>>: DockerはElasticsearch7.6クラスタをインストールし、パスワードを設定します
ハードウェア ビュー コマンドシステム # uname -a # カーネル/オペレーティング システ...
環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....
前回の記事では、MySQL 5.7.19 無償インストール版 (64 ビット) の設定方法についての...
美しい HTML コードの外観 美しい HTML コードの書き方。外国人が書いた記事: 美しい HT...
最近、会社初のミニプログラムの開発に参加しました。開発経験は基本的にWebViewをベースとしたハイ...
1. Apache Benchの紹介ApacheBench は、Apache サーバーに付属する W...
1. はじめにOracle が MySQL 8.0GA をリリースしました。海外での GA はリリー...
Dreamweaver または FrontPage を使用して HTML Web ページを作成する場...
まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...
目次スムーズなアニメーションの基準方法1: Chromeデベロッパーツールを使用する方法 2: フレ...
目次データ列を分離するプレフィックスインデックスとインデックスの選択性データ列を分離するMySQL ...
[LeetCode] 183.注文しない顧客Web サイトに、Customers テーブルと Or...
序文同社の開発者は、データの更新時に replace into ステートメントを使用していました。不...
問題を解決するBootstrap は、次の問題を解決する CSS フレームワークです。デバイス間での...