ホームページ  >  記事  >  ウェブフロントエンド  >  eval() を使用せずに JavaScript の文字列式を評価できますか?

eval() を使用せずに JavaScript の文字列式を評価できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-20 02:46:01475ブラウズ

Can I Evaluate String Expressions in JavaScript Without Using eval()?

Eval() を使用しない JavaScript での文字列式の評価

問題:

JavaScript では、eval() 関数は次のとおりです。コード スニペットを含む文字列を評価するために一般的に使用されます。ただし、セキュリティ リスクやパフォーマンスの問題が発生する可能性があります。 eval() を使用せずに文字列に格納された数式の値を計算する別の方法はありますか?

答え:

はい、安全でパフォーマンスの高い代替方法の 1 つは次のとおりです。 Function() コンストラクターを使用します。その仕組みは次のとおりです:

function evil(fn) {
  return new Function('return ' + fn)();
}

console.log(evil('12/5*9+9.4*2')); // => 40.4

説明:

  • evil() 関数は、JavaScript 式を表す文字列 fn を受け取ります。
  • 文字列の先頭に 'return ' を追加し、式の値を返す関数を効果的に作成します。
  • 新しい Function() コンストラクターは、変更された文字列から関数を作成し、それを実行します。
  • 返される結果は、式の計算値です。

以上がeval() を使用せずに JavaScript の文字列式を評価できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。