首頁 > web前端 > js教程 > 我可以在不使用 eval() 的情況下計算 JavaScript 中的字串表達式嗎?

我可以在不使用 eval() 的情況下計算 JavaScript 中的字串表達式嗎?

Barbara Streisand
發布: 2024-11-20 02:46:01
原創
532 人瀏覽過

Can I Evaluate String Expressions in JavaScript Without Using eval()?

不使用Eval() 計算JavaScript 中的字串表達式

問題:

在Java 中,eval () 函數是通常用於評估包含程式碼片段的字串。但是,它可能會帶來安全風險和效能問題。是否有另一種方法可以在不使用 eval() 的情況下計算儲存在字串中的公式的值?

答案:

是的,一種安全且高效能的替代方法是使用 Function() 建構子。它的工作原理如下:

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

console.log(evil('12/5*9+9.4*2')); // => 40.4
登入後複製

說明:

  • evil() 函數接受表示 JavaScript 表達式的字串 fn。
  • 它將「return」加到字串前面,從而有效地建立一個傳回表達式值的函數。
  • new Function() 建構子根據修改後的字串建立一個函式並執行它。
  • 回傳的結果是表達式的計算值。

以上是我可以在不使用 eval() 的情況下計算 JavaScript 中的字串表達式嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板