首页 > web前端 > js教程 > 正文

我可以在不使用 eval() 的情况下计算 JavaScript 中的字符串表达式吗?

Barbara Streisand
发布: 2024-11-20 02:46:01
原创
463 人浏览过

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

不使用 Eval() 计算 JavaScript 中的字符串表达式

问题:

在 JavaScript 中,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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板