logo

JavaScript eval() 関数

eval() 式の評価には JavaScript の関数が使用されます。これは、指定された文字列を JavaScript コードとして評価し、実行する JavaScirpt のグローバル関数です。

のパラメータ eval() 関数は文字列です。パラメータがステートメントを表す場合、eval() はステートメントを評価します。パラメータが式の場合、eval() は式を評価します。のパラメータの場合、 eval() が文字列ではない場合、関数はパラメータを変更せずに返します。

使用にはいくつかの制限があります eval() 関数など eval() セキュリティ上の理由により、この機能の使用は推奨されません。速度が遅くなり、コードが読みにくくなるため、使用はお勧めしません。

構文

 eval(string) 

価値観

次のように定義される単一のパラメーターを受け入れます。

文字列が空です

弦: それは、 JavaScript 式、単一のステートメント、または一連のステートメント。変数、ステートメント、または JavaScript 式を指定できます。

JavaScriptを理解しよう eval() イラストを使って機能を説明します。

例1

これは、を使用して式を評価する簡単な例です。 eval() 関数。この例には、いくつかの変数があります。変数 a、b、c に eval() 関数を適用して、合計、乗算、減算を計算します。

 var a = 10, b = 20, c = 30, sum, mul, sub; sum = eval(&apos; a + b + c &apos;); mul = eval(&apos; a * b * c&apos;); sub = eval(&apos; a - b&apos;); document.write(sum + &apos; <br>&apos;); document.write(mul + &apos; <br>&apos;); document.write(sub); 
今すぐテストしてください

出力

上記のコードを実行すると、出力は次のようになります -

 60 6000 -10 

例2

この例では、 eval() 関数。ここに関数があります 楽しい() 2 つの引数を持ち、両方のパラメータの乗算を返します。

SQL連結

で関数を呼び出しています。 eval() 関数を実行し、結果を レス 変数。

 var res; function fun(a, b) { return a * b; } eval(&apos;res = fun(50, 50);&apos;); document.write(res); 
今すぐテストしてください

出力

コードの実行後の出力は次のようになります -

 2500 

例 3 - JavaScript ステートメントを使用して文字列を評価する

この例では、 eval() JavaScript ステートメントを使用して文字列を評価する関数。ここに文字列があります str 、JavaScript 条件付き if-else 声明。変数の値を照合しています 'バツ' の値の場合、 バツ0 、出力は次のようになります '日曜日' それ以外の場合、出力は次のようになります。 '月曜日'

JavaScriptのコールバック地獄
 var x = 0; var str = &apos;if(x == 0) {&apos;SUNDAY&apos;} else &apos;MONDAY&apos;;&apos;; document.write(&apos;The output is : &apos;, eval(str)); 
今すぐテストしてください

出力

コードの実行後の出力は次のようになります -

 The output is : SUNDAY 

例 - 文字列を JavaScript オブジェクトに変換する

この例では、文字列を JSON オブジェクトに変換しています。ここで、文字列 str コードではなくデータが含まれます。データを JSON に切り替える必要があります。これにより、文字列がデータを表すために JavaScript 構文のサブセットを使用できるようになります。

ここではオブジェクトを使用しています オブジェクト データを表すために。

Javaクラスの例
 var str = &apos;({&apos;fname&apos; : &apos;Harry&apos;, &apos;lname&apos; : &apos;Rickman&apos;})&apos;; var obj = eval(str); document.write(obj.fname + &apos; &apos; + obj.lname); 
今すぐテストしてください

出力

コードの実行後の出力は次のようになります -

 Harry Rickman