JavaScript 运算表达式字符串求值

Eval 替代品

某产品需要实现类似 Excel了单元格求和计算:
SUM = A1 + B1 - C1 + (D1 - E1) / F1

转换一下其实就是取单元格的值,然后计算,类似计算表达式字符串:

2 + 6 / 2 * 3 - (1 + 1) / 2

其实最简单的,就是使用 eval

eval(expr)

可是,翻了一下 MDN 文档:

JavaScript 运算表达式字符串求值_第1张图片

可是这个非常不推荐使用,兄弟,这就难受了啊
不过文档给出了 Function 替代 eval

function calc (expr){
    return Function('return (' + expr + ')')()
}

验证:

JavaScript 运算表达式字符串求值_第2张图片

参考文档:

  • eval()

—— 2020/06/04 By YSH, Showers.

你可能感兴趣的:(JavaScript 运算表达式字符串求值)