ホームページ >ウェブフロントエンド >jsチュートリアル >「eval()」を使用せずにJavaScriptで数式を安全に評価する方法は?

「eval()」を使用せずにJavaScriptで数式を安全に評価する方法は?

DDD
DDDオリジナル
2024-12-08 08:27:14250ブラウズ

How to Safely Evaluate Mathematical Expressions in JavaScript Without Using `eval()`?

Eval() を使用せずに JavaScript で数式を評価する

潜在的に危険な eval() 関数に頼らずに数式を評価することは一般的ですJavaScript プログラミングのタスク。これに対処するために、いくつかの代替ソリューションを検討してみましょう。

JavaScript Expression Evaluator

JavaScript Expression Evaluator ライブラリは、数式を解析して評価する便利な方法を提供します。式文字列を指定し、変数を使用して評価をカスタマイズできます。たとえば、次のコードは、x が 3 に等しい式 "2 ^ x" を評価します。

const result = Parser.evaluate("2 ^ x", { x: 3 });

Math.js

Math.js も人気があります。算術演算用の JavaScript ライブラリ。これには、幅広い数学関数をサポートする強力な式パーサーが含まれています。 JavaScript Expression Evaluator と同様に、変数を渡して式を動的に評価できます。

const result = math.eval('sin(45 deg) ^ 2');

ユーザーの推奨事項

別のユーザーがスタック オーバーフローで次のような応答を提案しました。 evalx() 関数を利用して数式を安全に評価します。その回答の一部を次に示します。

function evalx(expr, scope) {
  return Function(`'use strict'; return (${expr})`)()(...scope);
}

evalx() 関数を呼び出すことで、eval() に関連するセキュリティ リスクなしで式を評価できます。

以上が「eval()」を使用せずにJavaScriptで数式を安全に評価する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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