用于 bool 表达式评估的 Javascript eval

标签 javascript optimization eval

我需要评估用户构建的 bool 表达式。我看到了两种方法:

1) 构建一个字符串并将其传递给 eval
2)构建抽象语法树,自己评估

我用 eval 实现了它,因为它是最简单的解决方案。我不相信第二种选择会好得多,如果它实际上更慢我也不会感到惊讶。

安全应该不是问题,因为我是根据一组预定值构建表达式。

在大多数情况下,表达式会非常简单,但也可以构建更复杂的表达式。这将变得非常复杂:“(true||false&&false)&&(true)”

想法?

最佳答案

我认为这是 eval 的有效用例。但是,如果您曾经想使用 CSP(内容安全策略),这非常棒……可能会禁用 eval。

关于用于 bool 表达式评估的 Javascript eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587639/

相关文章:

javascript - Web 组件与小部件 : Is there a difference?

javascript - bootstrap datetimepicker返回一个字符串,如何将此字符串转换为日期时间(php)

javascript - 如何.then链接,但需要前一个promise-JavaScript的resolve()值?

javascript - 通过字符串名称调用 "local"函数而不使用 eval?

php - 将字符串评估为 PHP 代码?

javascript - D3 图表值未分组(来自 JSON 加载)

java - 如何更高效地更新TriangleMesh的点?

javascript - IIS/.NET的一些类似JAWR的软件(consolidate and minify Javascript)

c - SIMD 值得吗?有更好的选择吗?

binding - 在 clojure 上将列表评估为 let