我知道可以通过三种方法来实现这一目标:
第一种也是最差的方法:
var result;
eval("result = calculation");
请不要使用这个,因为 eval 是邪恶的。它将字符串评估为代码并创建针对您的站点安全的漏洞。我使用它的唯一方法是当它是一个没有人可以访问的个人网站时。
第二个选项:
创建一个函数,通过运算符拆分字符串,然后执行数学操作。如果计算器最终不会太复杂的话我会这样做。
第三种选择:
不要添加运算符 - 将数学操作添加到一种查询中。当你想计算这个时。只需通过查询即可。注意数学顺序!
这是我目前想到的3种方法,希望我能提供帮助
影子Lp174
我建议您为每个操作制定单独的方法。它会生成更清晰、易于理解的代码,并且无论如何您都不会有那么多额外的代码:
<button @click = "add()">+</button>
<button @click = "subtract()">-</button>
<button @click = "multiply()">*</button>
<button @click = "divide()">/</button>
使用 math.js
// evaluate expressions
math.evaluate('sqrt(3^2 + 4^2)') // 5
math.evaluate('sqrt(-4)') // 2i
math.evaluate('2 inch to cm') // 5.08 cm
math.evaluate('cos(45 deg)') // 0.7071067811865476
// provide a scope
let scope = {
a: 3,
b: 4
}
math.evaluate('a * b', scope) // 12
math.evaluate('c = 2.3 + 4.5', scope) // 6.8
scope.c // 6.8