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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-16 16:50:03807ブラウズ

How to Safely Evaluate String Formulas in JavaScript Without `eval()`?

eval() を使用しない JavaScript での文字列値の計算

問題:
多くの JavaScript 開発者は eval を使用しています() 文字列に格納された数式を計算する関数。ただし、 eval() は任意のコードを実行できるため、安全ではありません。安全な代替手段はありますか?

答え:
はい、Function() コンストラクターを使用して、次の文字列を安全に評価できます。式。

コード:

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

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

説明:

Function() コンストラクターは引数として文字列を取ります。そして関数を返します。 'return' キーワードが文字列の先頭に追加され、関数が数式の結果として評価されるようになります。

利点:

  • セキュリティ: このメソッドは、評価を数式文字列に制限することで、悪意のあるコードの実行を防ぎます。
  • 信頼性: とは異なります。 Function() コンストラクターである eval() は、使用される構文や変数に関係なく、常に数式の結果を返します。

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

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