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

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

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

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

ES6ジェネレーターとイテレーター:開(kāi)発者ガイド

Feb 15, 2025 am 11:42 AM

ES6 Generators and Iterators: a Developer’s Guide

ES6は、JavaScript言語(yǔ)に多くの新機(jī)能を?qū)毪筏蓼筏俊¥长欷椁螜C(jī)能の2つ、ジェネレーターとイテレーターは、より複雑なフロントエンドコードで特定の機(jī)能を作成する方法を大きく変更しました。

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

キーポイント

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

iterator

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

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

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

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

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

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ù)を使用して各番號(hào)がプライムかどうかを確認(rèn)することです。とても簡(jiǎn)単です:

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]
繰り返しますが、それは機(jī)能しますが、不器用であり、この不器用は、JavaScriptがループの処理方法に大きく依存します。ただし、ES6を使用すると、新しいイテレーターにほぼPythonのようなオプションが表示されます。したがって、以前のループは次のように書(shū)くことができます:

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ù)は、可能性のある名前という名前の配列內(nèi)の実際のアイテムを表しています。したがって、インデックスでそれを呼び出す必要はもうありません。これは、ループで[i]を呼び出す必要はないことを意味しますが、iを呼び出すだけです。

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

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

ジェネレーター

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

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

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

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

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

for (const i of foo) {
  // 對(duì)i執(zhí)行某些操作
}
それから、私たちが取得したいときはいつでも - あなたはそれを推測(cè)しました - 次の主要な數(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()を呼び出すこともできます。これは、ジェネレーターがこのようなオブジェクトを返すため、発電機(jī)が無(wú)限でない場(chǎng)合に役立ちます。

ここで、完了キーは、関數(shù)がタスクを完了したかどうかを示します。私たちの場(chǎng)合、私たちの機(jī)能は決して終わりません。これにより、理論的にはすべての素?cái)?shù)が無(wú)限まで與えます(コンピューターメモリがたくさんある場(chǎng)合)。
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]

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

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

結(jié)論

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

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

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

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

に関する FAQ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

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

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

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

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

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

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

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

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

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

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

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 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に設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

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

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

See all articles