Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法将算术运算符存储在变量中,并在JavaScript计算中使用变量本身?_Javascript_Variables_Operators_Arithmetic Expressions - Fatal编程技术网

有没有办法将算术运算符存储在变量中,并在JavaScript计算中使用变量本身?

有没有办法将算术运算符存储在变量中,并在JavaScript计算中使用变量本身?,javascript,variables,operators,arithmetic-expressions,Javascript,Variables,Operators,Arithmetic Expressions,使用以下3个变量-我想用运算符变量设置的值计算两个数字。例如->num1*num2 const num1 = 10; const num2 = 4; const operator = `*`; //Could be any arithmetic operator 我知道这可以使用if或switch语句来完成,但我很想知道是否有一种方法可以在实际计算中使用操作变量本身,在更少的代码行中完成 我尝试了以下几件事(我最期待的是它们会变成这样): 那么,是有什么我还没有尝试过的方法可以让它工作,还是不

使用以下3个变量-我想用运算符变量设置的值计算两个数字。例如->num1*num2

const num1 = 10;
const num2 = 4;
const operator = `*`; //Could be any arithmetic operator
我知道这可以使用if或switch语句来完成,但我很想知道是否有一种方法可以在实际计算中使用操作变量本身,在更少的代码行中完成

我尝试了以下几件事(我最期待的是它们会变成这样):


那么,是有什么我还没有尝试过的方法可以让它工作,还是不能这样做?

你可以用想要的操作符获取一个对象,测试操作符是否存在,然后使用它

var运算符={
“+”:(a,b)=>a+b,
“-”:(a,b)=>a-b,
“*”:(a,b)=>a*b,
“/”:(a,b)=>a/b
},
计算=函数(val1、val2、符号){
if(登录操作员){
返回运算符[符号](val1,val2);
}
}

日志(计算(6,7,'*')在JavaScript中没有直接的方法可以做到这一点。在类似Lisp的语言中,“运算符”是函数,因此您可以实现所尝试的功能。当然,您可以创建自己的函数集作为对象的属性。
console.log(num1 + operation + num2);    //Outputs: "10*4"

console.log(num1, operation, num2);    //Outputs: 10 "*" 4

console.log(`${num1} ${operation} ${num2}`);    //Outputs: "10 * 4"

console.log(num1 operation num2);    //Outputs: Error

const calculation = num1 operation num2; console.log(calculation);    //Outputs: Error

console.log(1 + operation + 2);    //Outputs: "1*2"

console.log(Number(1 + operation + 2));    //Outputs: NaN