キーテイクアウト
- 引数は、すべてのJavaScript関数内で利用可能なローカルな配列のようなオブジェクトであり、関数が呼び出されたときに提供されたすべての引数を含みます。プッシュやポップなどの標準配列メソッドを持っていないため、真の配列ではありません。
- その制限にもかかわらず、「引数」は強力なツールであり、さまざまな数の引数を受け入れる柔軟な関数の作成を可能にします。 引数には、「引数」オブジェクトを作成した関数への参照を含む「Callee」プロパティもあり、匿名の関数がそれ自体を参照できるようにします。これは、プリセットの引数を使用して自己参照関数と関数を作成するために使用できます。
- 引数は、すべての関数内で利用可能なローカルの配列のようなオブジェクトの名前です。それは風変わりで、しばしば無視されますが、多くのプログラミングの魔法の源です。すべての主要なJavaScriptライブラリは、引数オブジェクトの力を活用します。それはすべてのJavaScriptプログラマーが慣れてくれるべきものです
柔軟な関数を作成
それは限られているように見えるかもしれませんが、議論は非常に有用なオブジェクトです。たとえば、さまざまな数の引数を受け入れる機能を作成できます。 Dean EdwardsによってBase2ライブラリにある形式関数は、この柔軟性を示しています:
テンプレート文字列を提供します。この文字列では、%1〜%9を使用して値に場所ホルダーを追加し、挿入する文字列を表す最大9つの他の引数を提供します。たとえば、
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };上記のコードは文字列を返します。
気づいたかもしれないことの1つは、形式の関数定義では、1つの引数のみを指定したことです:文字列。 JavaScriptを使用すると、関数定義に関係なく、任意の数の引数を関数に渡すことができ、引数オブジェクトはすべてにアクセスできます。
実際の配列に変換しますformat("And the %1 want to know whose %2 you %3", "papers", "shirt", "wear");
引数は実際のJavaScriptアレイではありませんが、標準配列メソッドを使用して簡単に1つに変換できます。
変数ARGSには、引数オブジェクトからのすべての値を含む適切なJavaScriptアレイオブジェクトが含まれます。
プリセット引数を使用して関数を作成します
引数オブジェクトにより、あらゆる種類のJavaScriptトリックを実行できます。 MakeFunc関数の定義は次のとおりです。この関数を使用すると、関数参照とその関数の任意の数の引数を提供できます。指定した関数を呼び出す匿名関数を返し、匿名関数が呼び出されたときに提供された新しい引数と一緒にプリセット引数を提供します。
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };MakeFuncに提供された最初の引数は、呼び出す関数への参照と見なされます(はい、この簡単な例ではエラーがチェックされません)、引数配列から削除されます。 MakeFuncは、関数オブジェクトの適用方法を使用して指定された関数を呼び出す匿名関数を返します。
最初のApplyの引数は、関数が呼び出されるスコープを指します。基本的に、これが呼び出される関数内で言及するキーワード。今のところ少し前進しているので、nullを維持します。 2番目の引数は、関数の引数オブジェクトに変換される値の配列です。 MakeFuncは、匿名関数に提供された引数の配列に元の値の配列を連結し、これを呼び出された関数に提供します。
テンプレートが常に同じである場所で出力するために必要なメッセージがあったとしましょう。フォーマット関数を呼び出すたびに常にテンプレートを引用する必要がないようにするために、makefuncユーティリティ関数を使用して、フォーマットを呼び出してテンプレート引数を自動的に入力する関数を返すことができます:
このように繰り返しmajortom関数を呼び出すことができます:
format("And the %1 want to know whose %2 you %3", "papers", "shirt", "wear");
Majortom関数を呼び出すたびに、最初の引数でフォーマット関数を呼び出します。テンプレートはすでに記入されています。
var args = Array.prototype.slice.call(arguments);自己参照関数を作成
それはかなりクールだと思うかもしれませんが、待ってください、議論にはもう一つの驚きがあります。別の有用なプロパティがあります:Callee。 arguments.calleeには、引数オブジェクトを作成した関数への参照が含まれています。どうすればそのようなものを使用できますか? arguments.calleeは、匿名関数がそれ自体を参照できる便利な方法です。
function makeFunc() { var args = Array.prototype.slice.call(arguments); var func = args.shift(); return function() { return func.apply(null, args.concat(Array.prototype.slice.call(arguments))); }; }
ただし、その関数の特別なバージョンを作成し、毎回2秒の遅延で3回繰り返されます。繰り返し機能を使用すると、これを行うことができます:
var majorTom = makeFunc(format, "This is Major Tom to ground control. I'm %1.");
majorTom("stepping through the door"); majorTom("floating in a most peculiar way");
"This is Major Tom to ground control. I'm stepping through the door." "This is Major Tom to ground control. I'm floating in a most peculiar way."何かを呼び出す結果は、各アラートの間に2秒の遅延を3回繰り返したアラートボックスです。
function format(string) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])", "g"); return String(string).replace(pattern, function(match, index) { return args[index]; }); };
javascript引数についてよく尋ねる質問
javascriptの「引数」オブジェクトは何ですか?
「引数」オブジェクトは、JavaScriptのすべての非矢印関数内で利用可能なローカル変数です。これには、関数に渡されたすべての引数があるアレイのような構造が含まれています。このオブジェクトは、関数がさまざまな数の引数を処理する必要がある場合に役立ちます。 「引数」オブジェクトは実際の配列ではありませんが、必要に応じて1つに変換できることに注意することが重要です。
「引数」オブジェクトを配列に変換するにはどうすればよいですか?
アレイのように動作しますが、アレイプロトタイプから継承することはできません。ただし、array.from()メソッドまたはスプレッド演算子(…)を使用して、それを配列に変換できます。例は次のとおりです。
function convertargstoarray(){
var argsarray = array.from(arguments);
//または
var argsarray = [... arguments];
}}
「Arguments」の「Arguments」
関数checkargstype(){
for(var i = 0; i}
}javaScriptのデフォルトパラメーターを使用して「引数」オブジェクトを使用できますか?デフォルトのパラメーターを持つ関数がパラメーターよりも少ない引数で呼び出された場合、「引数」オブジェクトは、デフォルト値ではなく、実際の引数のみを含む。
「引数」オブジェクトの「Callee」プロパティは何ですか?このプロパティは非推奨であり、新しいコードでは使用しないでください。代わりに、名前付き関数式または矢印関数を使用できます。
以上が引数:JavaScriptの奇妙さの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
