ホームページ > 記事 > ウェブフロントエンド > Eval() を使用せずに JavaScript で文字列式を安全に評価するにはどうすればよいでしょうか?
Eval を使用しない JavaScript の文字列値の評価
JavaScript の eval() 関数はセキュリティ リスクをもたらし、コード インジェクションにつながる可能性があります。これらの問題を回避するには、数式文字列を評価するための代替メソッドを検討することをお勧めします。
そのような代替メソッドの 1 つは、コード文字列を評価して結果を返すことができる Function() コンストラクターです。たとえば、次の文字列式を考えてみましょう:
var apa = "12/5*9+9.4*2";
eval(apa) を使用する代わりに、Function() コンストラクターを使用して、式を表す新しい関数を作成できます:
function evil(fn) { return new Function('return ' + fn)(); } console.log(evil('12/5*9+9.4*2')); // => 40.4
Function() コンストラクターはコード文字列を引数として受け取り、関数オブジェクトを返します。文字列内の return ステートメントにより、式の結果が確実に返されます。 console.log() 関数は評価結果を表示します。
Function() コンストラクターの使用は、文字列から任意のコードを実行しないため、eval() のより安全な代替手段です。これは、JavaScript で文字列式を評価するための、より制御された予測可能な方法を提供します。
以上がEval() を使用せずに JavaScript で文字列式を安全に評価するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。