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

Barbara Streisand
リリース: 2024-11-20 02:46:01
オリジナル
461 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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