JavaScript、関数内のRESTパラメータの理解

php中世界最好的语言
リリース: 2017-11-18 09:55:37
オリジナル
2227 人が閲覧しました

JavaScript は学習や仕事に関係するため、残りのパラメーターに関しては、関数の大部分を占める JavaScript についても理解する必要があります。そして関数は常に変化しています。この記事は JavaScript を理解して習得するのに役立ちます。

JavaScript 関数は、任意の数のパラメータを取ることができます。 C# や Java などの他の言語とは異なり、JavaScript 関数を呼び出すときに任意の数のパラメーターを渡すことができます。 JavaScript 関数では、不明な数の 関数引数 を許可します。 ECMAScript 6 より前の JavaScript には、これらの未知のパラメータまたは可変数のパラメータにアクセスするための変数がありました。これは、配列ではなく配列のようなオブジェクトでした。引数変数を理解するには、次のコードを検討してください:

function add(){
    var result = 0;
    for(let i=0;i<arguments.length;i++){
        result = result + arguments[i];
    }
    return result;
}
var r = add(6,9,3,2);
console.log(r);
var t = add(7,56,9);
console.log(t);
ログイン後にコピー

ご覧のとおり、引数オブジェクトは、未知または変数の関数パラメーターにアクセスするために使用されます。引数で length 属性と角括弧が使用されている場合でも、それは真の JavaScript 配列 ではありません。引数オブジェクトでは、pop、push、slice などの他の JavaScript 配列メソッドを使用できません。引数を使用するときの問題は次のとおりです:

JavaScript 関数の引数オブ​​ジェクトは実際の JavaScript 配列ではないため、pop、push、slice などの他の配列メソッドは使用できません。

内部関数で外部関数の引数オブ​​ジェクトにアクセスすることは困難です。これにアクセスするには、外部関数の引数関数を変数に代入し、それを内部関数で使用する必要があります。

引数オブジェクトを配列として使用したい場合は、Aarry.prototype.slice を介して手動で変換する必要があります。

ECMAScript 6 では、関数内の配列として未知の数のパラメーターを表す新機能、Rest パラメーターが導入されています。追加のパラメーターを配列として表すだけでなく、引数オブジェクトに関する多くの問題も解決します。上記の add 関数を、rest パラメーターを使用して書き換えます。

function add(...theArgs){
    var result = 0;
    for(let i=0;i<theArgs.length;i++){
        result = result + theArgs[i];
    }
    return result;
}
var r = add(6,9,3,2);
console.log(r);
var t = add(7,56,9);
console.log(t);
ログイン後にコピー

残りのパラメータは...theArgs または...args として定義できます。最後に名前を付けた関数パラメータの先頭に ... (3 つのドット) が付いている場合、それが関数の残りのパラメータになります。 JavaScript 関数の残りのパラメーターは、純粋な JavaScript 配列です。上記のコードでは、...theArgs は関数 add の残りのパラメーターです。これは、これが唯一の名前付きパラメーターであり、先頭に ... (3 つのドット) が付いているためです。残りのパラメータは JavaScript 配列であるため、次のコードに示すように、残りのパラメータ theArgs に対してプッシュやポップなどの操作を実行できます:

function add(...theArgs){
    theArgs.push(10);
    var result = 0;
    for(let i=0;i<theArgs.length;i++){
        result = result + theArgs[i];
    }
    var lastItem  = theArgs.pop();
    console.log(lastItem);
    return result;
}
ログイン後にコピー

JavaScript 関数の残りのパラメータは、他のパラメータとも連携できます。残りのパラメーター配列に特定のパラメーターを含めたくない場合は、関数内で他の名前付きパラメーターを使用する必要がある場合があります。次のコード ブロックを考えてみましょう:

function add(num1, num2, ...theArgs){
    console.log(num1);
    console.log(num2);
    console.log(theArgs.length);
}
var r = add(6,9,3,2);
var t = add(7,56,9);
ログイン後にコピー

最初の関数呼び出しでは、6 と 9 がそれぞれ num1 と num2 に割り当てられます。 2 番目の関数呼び出しでは、7 と 56 が num1 と num2 に割り当てられます。 3 番目のパラメーターを開始するパラメーターは、残りのパラメーター配列に割り当てられます。最初の 2 つのパラメータは残りのパラメータ配列の一部ではないことに注意してください。したがって、残りのパラメータにすべての値を含める場合は、最初からカンマ区切りの名前付きパラメータとして定義する必要があります。以下のコードではエラーが発生します:

function add(num1, ...theArgs,num2){
    console.log(num1);
    console.log(num2);
    console.log(theArgs.length);
}
ログイン後にコピー

上記のコードでは、rest パラメータが最後のパラメータではないため、JavaScript はエラーをスローします。残りのパラメータは最後の仮パラメータである必要があります。

JavaScript を使用すると、残りのパラメーターを破棄できます。これは、残りの変数データを別の 変数名 名に解凍できることを意味します。以下のコードを見てください:

function add(...[a,b,c]){
    return a+b+c;
}
var r = add(6);
console.log(r);
var t = add(7,56,9);
console.log(t);
ログイン後にコピー

最初の関数呼び出しでは a = 6、b = 未定義、c = 未定義が割り当てられ、2 番目の関数呼び出しでは a = 7、b = 56、c = 9 が割り当てられます。この例では、関数は渡された追加の引数を無視します。

JavaScript 関数の残りのパラメーターは、関数を使用した未知のパラメーターを使用する引数オブジェクトに比べて大幅に改善されています。これは純粋な JavaScript 配列であるため、すべての配列メソッドを使用できます。残りの変数データを名前付き変数に解凍できます。 REST パラメーターに任意の名前を付けることができます。これは、arguments キーワードを使用する場合に比べて、もう 1 つの大きな改善点です。

「JavaScript を理解する」シリーズの次回の記事では、JavaScript 関数のデフォルトのパラメーターを紹介しますので、お楽しみに。

JavaScript、関数の Rest パラメーターの理解はここで終わりです。一緒に勉強したり議論したりする皆さんを歓迎します:

関連書籍:

JavaScriptを理解し、letステートメントを理解してください


JavaScript、関数のデフォルトパラメータを理解します


ネイティブjsは可動プロンプトdivボックスのソースコードを実装します


以上がJavaScript、関数内のRESTパラメータの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!