计算包含公式的字符串是编程中的常见任务。虽然 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中文网其他相关文章!