Значение является генераторной функцией

JavaScriptJavaScriptBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы будем углубляться в концепцию генераторных функций в 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, чтобы улучшить свои навыки.