値がジェネレータ関数であるかどうか

JavaScriptJavaScriptBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript におけるジェネレータ関数の概念を深く掘り下げます。通常の関数とどのように異なるかを探り、isGeneratorFunction() 関数を使って識別する方法を学びます。実際の例と演習を通じて、ジェネレータ関数がどのように機能するかと、コードでのその潜在的な応用について、十分な理解を得るでしょう。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/functions("Functions") javascript/AdvancedConceptsGroup -.-> javascript/closures("Closures") javascript/AdvancedConceptsGroup -.-> javascript/proto_inherit("Prototypes and Inheritance") subgraph Lab Skills javascript/variables -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/data_types -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/arith_ops -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/comp_ops -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/functions -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/closures -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} javascript/proto_inherit -.-> lab-28421{{"値がジェネレータ関数であるかどうか"}} end

値がジェネレータ関数であるかどうかを確認する

値がジェネレータ関数であるかどうかを確認するには、isGeneratorFunction 関数を使用できます。コーディングの練習を始めるには、ターミナル/SSH を開いて node と入力します。

isGeneratorFunction 関数の動作方法は次のとおりです。

  • Object.prototype.toString()Function.prototype.call() を使って、与えられた引数がジェネレータ関数であるかどうかを確認します。
  • チェックの結果が '[object GeneratorFunction]' の場合、その値はジェネレータ関数です。

isGeneratorFunction 関数のコードは次のとおりです。

const isGeneratorFunction = (val) =>
  Object.prototype.toString.call(val) === "[object GeneratorFunction]";

そして、それを使用する方法のいくつかの例を示します。

isGeneratorFunction(function () {}); // false
isGeneratorFunction(function* () {}); // true

まとめ

おめでとうございます!「値がジェネレータ関数であるかどうか」の実験を完了しました。スキルを向上させるために、LabEx でさらに実験を練習できます。