【发布时间】:2023-09-04 09:36:01
【问题描述】:
抱歉,如果我的问题不清楚,不知道如何措辞!
我正在尝试创建一个函数,该函数接受两个数字和一个包含运算符(例如'+'、'-'、'*'、'/')的字符串。
我在字符串上使用了 .valueOf() 来提取运算符,但是 num1 和 num2 参数似乎没有计算为传递的数字参数。为什么会这样?
function calculate(num1, operator, num2) {
return `num1 ${operator.valueOf()} num2`;
}
undefined
calculate(2, '+', 1);
"num1 + num2" //result
【问题讨论】:
-
如果不使用
eval()或new Function(),您将无法做您想做的事情,除非您直接检查操作员参数并以适当的方式以编程方式对其进行操作。 -
@Pointy ...但是 eval() 不是邪恶的.....我相信 switch 可以完成这项工作。
-
@gaetanoM 和开关将是该评论的第二部分所指的。
标签: javascript function arguments operators