計算包含公式的字串是程式設計中的常見任務。雖然 JavaScript 為此類目的提供了 eval() 函數,但它會帶來安全風險,因此通常不鼓勵這樣做。這是一種不使用 eval() 來計算字串值的替代方法。
Function() 建構子可以從字串建立匿名函式。這可用於評估字串表達式。例如,考慮以下程式碼:
function evil(fn) { return new Function('return ' + fn)(); } console.log(evil('12/5*9+9.4*2')); // => 40.4
透過傳回由 Function() 建構函數計算的新函數,我們可以執行儲存在字串中的數學運算。在此範例中,字串「12/5*9 9.4*2」的計算結果為 40.4。
與eval() 相比,Function() 建構子允許:
而 Function() 建構子提供了更安全可靠的替代方案對於 eval(),需要注意的是,它仍然動態評估程式碼,因此應採取預防措施以避免惡意輸入。
以上是如何在不使用 eval() 的情況下計算 JavaScript 中的字串公式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!