实例:

1. 需求:

  • 有一个表达式
    • 运算数是自定义的变量,值只能是真或假
    • 运算符也是自定义的,其功能对应某一个逻辑运算符

2. 方案

  • 对于表达式的每一个变量,替换成对应的实际值
  • 对于表达式的每一个自定义运算符,替换成其对应的逻辑运算符

3. 代码实现

let express = '(变量1 OR 变量2) AND 变量3'
let dealExpress = express.replace(/OR/g, '||').replace(/AND/g, "&&")
let calu = new Function('变量1', '变量2', '变量3', `return ${dealExpress}`)
console.log(calu(true, false, false))//false
console.log(calu(true, false, true))//true