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