用于布尔表达式求值的Javascript eval

时间:2011-09-28 18:17:47

标签: javascript optimization eval

我需要评估用户构建的布尔表达式。我认为有两种方法可以做到:

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

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

安全不应成为问题,因为我正在从一组预定值构建表达式。

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

思想?

1 个答案:

答案 0 :(得分:3)

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