ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptで文字列を関数に変換するにはどうすればよいですか?

JavaScriptで文字列を関数に変換するにはどうすればよいですか?

WBOY
リリース: 2023-09-11 11:01:11
転載
1839 人が閲覧しました

如何在 JavaScript 中将字符串转换为函数?

文字列が与えられたので、それを JavaScript の関数に変換する必要があります。場合によっては、数学式または関数式を文字列の形式で取得し、その式を実行するには文字列を関数式に変換する必要があります。このチュートリアルでは、指定された文字列を関数または数式に変換するさまざまな方法を学びます。

eval()メソッドを使用する

eval() メソッドは式をパラメータとして受け取り、その式を評価します。たとえば、文字列「2 2」を引数として eval() メソッドに渡すと、数式 2 2 が評価されると 4 が返されます。

数式などの関数式も評価します。

###文法###

ユーザーは、次の構文に従って eval() メソッドを使用して、文字列を JavaScript の関数に変換できます。

リーリー

上記の構文では、関数文字列を eval() メソッドのパラメータとして渡します。

例 1

次の例では、関数式を含む文字列を作成します。関数式は Web ページにメッセージを出力します。

その後、文字列を eval() メソッドのパラメータとして渡し、通常の関数を呼び出すのと同じように func() 関数を実行します。

func() 関数は、通常の関数と同じ出力を提供します。

リーリー

例 2

次の例では、getHeight プロパティに文字列形式の関数が含まれるオブジェクトを作成します

eval() メソッドを使用して getHeight プロパティの文字列値を計算し、関数文字列を式に変換してから getHeight プロパティに再度格納します。

その後、getHeight() 関数を実行します。この関数は、高さ変数に保存した高さを返します。

リーリー

関数コンストラクターを使用する

Function() コンストラクターを使用すると、文字列から関数を作成できます。 Function() コンストラクターは N 個のパラメーターを取ることができます。 Functionconstructor() の最初の N-1 個のパラメーターは、作成される関数のパラメーターとして使用され、N 番目のパラメーターは関数式

です。 ###文法###

ユーザーは、次の構文に従って Function() コンストラクターを使用して文字列から関数を作成できます。

リーリー

上記の構文では、func は Function() コンストラクターを使用して作成されます。式は関数式を含む文字列です。

例 3

以下の例では、式文字列を作成します。また、式文字列で eval() メソッドを使用して数式を評価します。

その後、通常の関数と同様に func() 関数を呼び出し、ユーザーは出力を確認できます

リーリー

例 4

以下の例では、複数のパラメーターを Function() コンストラクターに渡しています。最初の 3 つのパラメータは、4 番目のパラメータとして渡される関数式のパラメータとして使用されます。

関数式のパラメータ値を出力します。 concatString() 関数の呼び出し中にパラメータを渡さなかったため、出力ではパラメータのデフォルト値が出力されていることがわかります。

リーリー

このチュートリアルでは、2 つの異なる方法を使用して文字列を関数式に変換する方法について学びました。最初のメソッドでは、JavaScript の式を評価するために使用できる eval() メソッドを使用しました。

2 番目の方法では、Function コンストラクターを使用します。これは、関数パラメーターと関数式をパラメーターとして受け取り、新しい関数を作成します。

以上がJavaScriptで文字列を関数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート