首頁 >web前端 >js教程 >如何在不使用 Eval() 的情況下安全地計算 JavaScript 中的字串公式?

如何在不使用 Eval() 的情況下安全地計算 JavaScript 中的字串公式?

Susan Sarandon
Susan Sarandon原創
2024-11-13 08:00:02216瀏覽

How Can You Safely Evaluate String Formulas in JavaScript Without Using Eval()?

在沒有Eval 的情況下計算JavaScript 中的字串值

JavaScript 中的eval() 函數會帶來安全風險,並可能導致程式碼注入。為了避免這些問題,建議探索評估公式字串的替代方法。

其中一個替代方法是 Function() 建構函數,它可以評估程式碼字串並傳回結果。例如,考慮以下字串公式:

var apa = "12/5*9+9.4*2";

您可以使用Function() 建構函數來建立表示公式的新函數,而不是使用eval(apa):

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn