国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
キーポイント
iterator
eviedキーワードは、ecmascript 2015の一時停止および復元ジェネレーター関數(shù)(関數(shù)*またはレガシージェネレーター関數(shù))に使用されます。利回りは、ジェネレーター関數(shù)から値を返すことができます。この返品値は通常、値と完了の2つのプロパティを持つオブジェクトです。値屬性は、降伏式を計算した結果であり、完了は、発電機が最後の値を生成したかどうかを示すブール値です。

ECMAScript 2015でジェネレーター関數(shù)の例を提供できますか?

ホームページ ウェブフロントエンド jsチュートリアル ES6ジェネレーターとイテレーター:開発者ガイド

ES6ジェネレーターとイテレーター:開発者ガイド

Feb 15, 2025 am 11:42 AM

ES6 Generators and Iterators: a Developer’s Guide

ES6は、JavaScript言語に多くの新機能を導入しました。これらの機能の2つ、ジェネレーターとイテレーターは、より複雑なフロントエンドコードで特定の機能を作成する方法を大きく変更しました。

彼らはうまく機能しますが、実際の機能は少し混亂する可能性がありますので、詳しく見てみましょう。

キーポイント

  • ES6は、ループ用のよりクリーンな書き込み方法を提供し、データセット內の要素と直接対話するためのよりPythonのような方法を提供し、コードを読みやすくしやすくします。
  • ES6のジェネレーターは、各呼び出しの間の狀態(tài)を覚えている関數(shù)です。彼らは呼び出されるたびにシーケンスで次の値を生成し、カスタムイテレーションを効果的に作成できます。
  • ジェネレーター関數(shù)の「evels」キーワードは「return」に似ていますが、関數(shù)の狀態(tài)を保持し、次の呼び出しで割り込みから実行を継続できるようにします。
  • ノードと最新のブラウザはES6機能をサポートしていますが、古いブラウザーでは、BABELなどの翻訳者がES6コードをECMAScript 5コードに変換する必要がある場合があります。

iterator

反復はプログラミングにおける一般的な慣行であり、通常、一連の値をループしたり、各値を変換したり、後で使用するために何らかの方法で使用または保存するために使用されます。

JavaScriptでは、私たちは常にループ用のようなものを持っています:

for (var i = 0; i < foo.length; i++) {
  // 對i執(zhí)行某些操作
}
しかし、ES6は別のオプションを提供します:

for (const i of foo) {
  // 對i執(zhí)行某些操作
}
これは間違いなくより簡潔で使いやすく、PythonやRubyのような言語を思い出させます。ただし、この新しい反復について注意すべき非常に重要なことがもう1つあります。データセットの要素と直接対話することができます。

配列內の各番號が素數(shù)であるかどうかを確認したいとします。これを行う関數(shù)を作成することでこれを行うことができます。このように見えるかもしれません:

function isPrime(number) {
  if (number <= 1) {
    return false;
  } else if (number === 2) {
    return true;
  }

  for (var i = 2; i < number; i++) {
    if (number % i === 0) {
      return false;
      break;
    }
  }

  return true;
}
世界では最高ではありませんが、うまくいきます。次のステップは、數(shù)字のリストをループして、光沢のある新しい関數(shù)を使用して各番號がプライムかどうかを確認することです。とても簡単です:

var possiblePrimes = [73, 6, 90, 19, 15];
var confirmedPrimes = [];

for (var i = 0; i < possiblePrimes.length; i++) {
  if (isPrime(possiblePrimes[i])) {
    confirmedPrimes.push(possiblePrimes[i]);
  }
}

// confirmedPrimes現(xiàn)在是[73, 19]
繰り返しますが、それは機能しますが、不器用であり、この不器用は、JavaScriptがループの処理方法に大きく依存します。ただし、ES6を使用すると、新しいイテレーターにほぼPythonのようなオプションが表示されます。したがって、以前のループは次のように書くことができます:

const possiblePrimes = [73, 6, 90, 19, 15];
const confirmedPrimes = [];

for (const i of possiblePrimes){
   if ( isPrime(i) ){
      confirmedPrimes.push(i);
   }
}

// confirmedPrimes現(xiàn)在是[73, 19]
これははるかにきれいですが、最も印象的なことはループのためです?,F(xiàn)在、Iの変數(shù)は、可能性のある名前という名前の配列內の実際のアイテムを表しています。したがって、インデックスでそれを呼び出す必要はもうありません。これは、ループで[i]を呼び出す必要はないことを意味しますが、iを呼び出すだけです。

舞臺裏では、この反復によりES6の光沢のある新しいSymbol.iterator()メソッドが活用されます。この方法は反復を記述する責任があり、呼び出されると、ループの次の値を含むJavaScriptオブジェクトと、ループが完了するかどうかに応じてtrueまたはfalseです。

この詳細に興味がある場合は、Jake Archibaldのこの素晴らしいブログ投稿「Iterators Gongent Iterate」を読むことができます。この記事の別の部分であるジェネレーターを掘り下げるにつれて、舞臺裏で何が起こっているのかについても良いアイデアを提供します。

ジェネレーター

ジェネレーター(「Iter Factory」とも呼ばれます)は、特定の反復を作成するために使用される新しいタイプのJavaScript関數(shù)です。コンテンツをループする特別なカスタム方法を提供します。

わかりました、それはどういう意味ですか?例を見てみましょう。関數(shù)が必要であり、それを呼ぶたびに、次の素數(shù)が與えられるとします:

for (var i = 0; i < foo.length; i++) {
  // 對i執(zhí)行某些操作
}
JavaScriptに慣れている場合、このようなものの一部は魔術のように見えますが、実際にはそれほど悪くはありません。キーワード関數(shù)の後に奇妙なアスタリスクがありますが、ジェネレーターを定義していることをJavaScriptに伝えています。

別の奇妙な部分は、収量キーワードです。これは、実際に発電機がそれを呼ぶときに吐き出すものです。返すのはほぼ同等ですが、呼び出されるたびにすべてを再実行するのではなく、関數(shù)の狀態(tài)を保持します。実行時にその位置を「覚えている」ので、次にそれを呼ぶとき、それは割り込みから続きます。

これは、これを行うことができることを意味します:

for (const i of foo) {
  // 對i執(zhí)行某些操作
}
それから、私たちが取得したいときはいつでも - あなたはそれを推測しました - 次の主要な數(shù)字、私たちはnextprimeを呼び出すことができます:

function isPrime(number) {
  if (number <= 1) {
    return false;
  } else if (number === 2) {
    return true;
  }

  for (var i = 2; i < number; i++) {
    if (number % i === 0) {
      return false;
      break;
    }
  }

  return true;
}
nextprime.next()を呼び出すこともできます。これは、ジェネレーターがこのようなオブジェクトを返すため、発電機が無限でない場合に役立ちます。

ここで、完了キーは、関數(shù)がタスクを完了したかどうかを示します。私たちの場合、私たちの機能は決して終わりません。これにより、理論的にはすべての素數(shù)が無限まで與えます(コンピューターメモリがたくさんある場合)。
var possiblePrimes = [73, 6, 90, 19, 15];
var confirmedPrimes = [];

for (var i = 0; i < possiblePrimes.length; i++) {
  if (isPrime(possiblePrimes[i])) {
    confirmedPrimes.push(possiblePrimes[i]);
  }
}

// confirmedPrimes現(xiàn)在是[73, 19]

かっこいいので、今すぐ発電機とイテレーターを使用できますか?

ECMAScript 2015をサポートするオンライン編集者も、特にFacebookの再生者とJSビンに焦點を當てているオンラインエディターもたくさんあります。 JavaScriptが現(xiàn)在どのように書かれているかをプレイして學びたいだけなら、これらは一見の価値があります。

結論

ジェネレーターとイテレーターは、JavaScriptの問題へのアプローチに対して非常に多くの新しい柔軟性を提供します。イテレーターを使用すると、ループをよりPythonのような方法で書き込むことができます。つまり、コードはよりクリーンで読みやすく見えます。

ジェネレーター関數(shù)を使用すると、最後に見られた場所を覚えている関數(shù)を記述し、割り込みから実行を継続できます。また、実際に覚えていることの點で無限になることもありますが、場合によっては非常に便利です。

これらのジェネレーターとイテレーターのサポートは良いです。インターネットエクスプローラーを除き、ノードおよびすべての最新のブラウザでサポートされています。古いブラウザをサポートする必要がある場合は、最良の方法はBabelのような翻訳者を使用することです。

ECMAScript 2015ジェネレーターとイテレーター(FAQ)

に関する FAQ

ecmascript 2015の反復因子とジェネレーターの違いは何ですか?

iteratorsとジェネレーターはどちらもECMAScript 2015の機能であり、データフローの処理に使用されます。イテレーターは、プログラマーがコレクション內のすべての要素を反復することを可能にするオブジェクトです。次のアイテムをシーケンスで返す次の()メソッドがあります。一方、ジェネレーターは、途中で停止してから停止から続行できる関數(shù)です。言い換えれば、発電機は関數(shù)のように見えますが、イテレーターのように動作します。

eviedキーワードは、ecmascript 2015の一時停止および復元ジェネレーター関數(shù)(関數(shù)*またはレガシージェネレーター関數(shù))に使用されます。利回りは、ジェネレーター関數(shù)から値を返すことができます。この返品値は通常、値と完了の2つのプロパティを持つオブジェクトです。値屬性は、降伏式を計算した結果であり、完了は、発電機が最後の値を生成したかどうかを示すブール値です。

ECMAScript 2015の次の()メソッドの目的は何ですか?

次()メソッドは、ECMAScript 2015のIteratorプロトコルの重要な部分です。値と完了の2つのプロパティを持つオブジェクトを返します。値屬性は反復シーケンスの次の値であり、実行されたものは、反復が完了したかどうかを示すブール値です。完了した場合、イテレーターは反復シーケンスの終了を超えています。

ループの…とecmascript 2015のループの違いは何ですか?

ecmascript 2015では、次の()メソッドを使用してオブジェクトを定義することにより、カスタムイテレーターを作成できます。この方法は、値と完了の2つのプロパティを持つオブジェクトを返す必要があります。値屬性は反復シーケンスの次の値であり、実行されたものは、反復が完了したかどうかを示すブール値です。

ecmascript 2015のsymbol.iteratorの役割は何ですか?

Symbol.iteratorは、ECMAScript 2015の特別な組み込みシンボルです。オブジェクトのデフォルトのイテレータを指定するために使用されます。オブジェクトを繰り返す必要がある場合(たとえば、loopのforの先頭に)、その@@ iteratorメソッドは引數(shù)なしで呼び出され、返されたイテレーターは値を繰り返すために使用します。

ECMAScript 2015でジェネレーター関數(shù)の例を提供できますか?

もちろん、これはECMAScript 2015のジェネレーター関數(shù)の簡単な例です。

この例では、IDMaker関數(shù)は、一連の數(shù)字を生成するジェネレーターです。
for (var i = 0; i < foo.length; i++) {
  // 對i執(zhí)行某些操作
}

ECMAScript 2015でThro()メソッドとジェネレーターを使用する方法は?

ECMAScript 2015のTHRO()メソッドをジェネレーターで使用して、発電機関數(shù)の実行を復元し、降伏式からエラーを投げることができます。 Thro()メソッドは、発電機関數(shù)の実行中に発生するエラーを処理するために使用できます。

ECMAScript 2015 IteratorのDONE屬性の重要性は何ですか?

実行されたプロパティは、ECMAScript 2015のIteratorによって返されるブール値です。 Iteratorがより多くの値を返すかどうかを示します。完了した場合、イテレーターは反復シーケンスの終了を超えています。完了した場合、イテレーターはさらに多くの値を生成できます。

以上がES6ジェネレーターとイテレーター:開発者ガイドの詳細內容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設定して、メソッドを設定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調査 JavaScript:効率的なコーディングのためのデータ型の調査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaとJavaScriptの違いは何ですか? JavaとJavaScriptの違いは何ですか? Jun 17, 2025 am 09:17 AM

JavaとJavaScriptは、異なるプログラミング言語です。 1.Javaは、エンタープライズアプリケーションや大規(guī)模なシステムに適した、靜的に型付けされ、コンパイルされた言語です。 2。JavaScriptは動的なタイプと解釈された言語であり、主にWebインタラクションとフロントエンド開発に使用されます。

See all articles