ECMAScript6関数の残りのパラメータ(Rest Parameters)_JavaScriptスキル
JS 関数内に引数オブジェクトがあり、実際のパラメータをすべて取得できることがわかります。 ES6 は、開始パラメータを除いたパラメータ、つまり残りのパラメータ (意味のない O(∩_∩)O~) を取得できる新しいオブジェクトをもたらしました。
この新しいオブジェクトは引数とは異なり、プログラマによってカスタマイズされた共通の識別子です:...
の前に 3 つのドットを付ける必要があります。function func(a, ...rest) { console.log(a) console.log(rest) } func(1) func(1, 2, 3, 4)
func の 2 番目のパラメーターの残りの部分に注目してください。先頭に 3 つのドットがあります。定義後2回呼び出した結果は以下の通りです
最初の呼び出しでは、rest は空の配列であり、2 回目は [2, 3, 4] であることがわかります。
別の例では、前に 2 つのパラメータを定義します
function func(a, b, ...rest) { console.log(a, b) console.log(rest) } func(1, 2) func(1, 2, 3, 4)
出力結果は以下の通りです
上記の 2 つの例を通じて、残りのパラメーターの意味を理解できたはずです。
パラメータが残っているため、後で他のパラメータに従わないでください。そうしないと、エラーが報告されます
function func(a, ...rest, b) { }
パラメータ b が休息の後に追加され、Firefox はエラーを報告します
残りのパラメーターを使用すると、関数の長さ属性がいくつか変更されます
function func(a, b, ...rest) { } func.length // 2
つまり、長さは休符を含まず、2になります。
生徒の中には、残りのパラメーターの前にパラメーターがないということはあり得るのかと疑問に思う人もいるかもしれません。 答えは「はい」です
function func(...rest) { console.log(rest) } func(1) // [1] func(1, 2, 3, 4) // [1,2,3,4]
ここにある残りの部分は、実際には引数と同様の機能を持っています。これが引数の代わりになると考えている学生もいます。 ECMAScript にはこの意図があります。Rest Parameters はすでに放棄された ES4 に含まれていました (AS3 に詳しい学生はこれを知っているはずです)。Rest Parameters は ES6 にも残されました。
rest を引数と一緒に使用することはできず、エラーが報告されることに注意してください
function func(...rest) { console.log(rest) console.log(arguments) }
Firefox コンソールは次のとおりです
引数と残りのパラメータの違い
引数は疑似配列 (配列のようなもの)
残りのパラメーターは実数配列 (Array) であり、すべてのメソッドは Array.prototype
にあります。
引数には callee があり、callee には caller
があります。
function func(a, ...rest) { console.log(rest instanceof Array) } func(1, 2) // true
最後に、残りのパラメーターを実際に適用して終了します
/* * 任意个数相加 * * **示例** * sum(1) * sum(1, 2) * sum(1, 2, 3) */ function sum(first, ...rest) { var result = first var i = 0 var len = rest.length while (i < len) { result += rest[i] i++ } return result }
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。
