用于布尔表达式计算的Javascript eval

Javascript eval for boolean expression evaluation

本文关键字:Javascript eval 计算 布尔表达式 用于      更新时间:2023-09-26

我需要计算用户构建的布尔表达式。我认为有两种方法:

1)创建一个字符串并传递给eval
2)构建一个抽象语法树,并自己计算

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

安全性应该不是问题,因为我是从一组预先确定的值构建表达式的。

在大多数情况下,表达式将非常简单,但也可以构建更复杂的表达式。这是最复杂的了:"(true||false&&false)&&(true)"

想法吗?

我认为这是eval的一个有效用例。但是,如果您想要使用CSP(内容安全策略),那就太棒了。