Javascript 如何使用if语句调用函数?

Javascript 如何使用if语句调用函数?,javascript,Javascript,函数计算器(a、b、操作){ if(addNum()){ var result=addNum();//4 console.log(“结果为”+结果); }if(subsNum()){ 结果=subsNum();//2 console.log(“结果为”+结果); }if(multNum()){ result=multNum();//6 console.log(“结果为”+结果); }if(divNum()){ 结果=divNum();//1 console.log(“结果为”+结果); } }

函数计算器(a、b、操作){
if(addNum()){
var result=addNum();//4
console.log(“结果为”+结果);
}if(subsNum()){
结果=subsNum();//2
console.log(“结果为”+结果);
}if(multNum()){
result=multNum();//6
console.log(“结果为”+结果);
}if(divNum()){
结果=divNum();//1
console.log(“结果为”+结果);
}
}
函数addNum(a,b){
返回2+2;
//返回a+b;//为什么不返回?
}
函数subnum(a,b){
返回4-2;
//返回a-b;
}
函数multNum(a,b){
返回2*3;
//返回a*b;
}
函数divNum(a,b){
返回8/8;
//返回a/b;
}

计算器()无需使用if语句调用此语句,因为它会使事情复杂化

有没有可能像这个计算器(addNum(2,5))?如果addNum(a,b)返回a+b

这是可能的,你应该这样做。基本上,您是将一个函数传递给您的计算器函数。因此,它的工作方式类似于->
计算器函数
获取包含另一个函数(
addNum
subnum
等)的
操作
参数并执行它

function calculator(operation) {
  return operation
}

function addNum(a, b) {
  return a + b;
// return  a + b;  //why not?
}

function subsNum(a, b) {
  return a - b;
   // return a - b;
}

function multNum(a, b) {
  return a * b;
     // return a * b;
}

function divNum(a, b) {
   return a / b;
    // return a / b;
}

console.log(calculator(addNum(2,3)));
// returns 5
还有改进代码和重复的空间。但这是另一个故事

如何用参数替换整数(在函数的
addNum()
中) 添加a+b而不是2+2的示例)

正如您所说的,您可以使用参数。参数将允许您将变量传递到函数中,以便函数可以使用它们。 例如:

因此,既然
addNum
取了2个值(因为有两个参数
a
b
),那么调用函数时必须传递两个数字:

addNum(5,2)
创建一个包含3个参数的函数计算器。前两个
参数是数字。第三个参数,称为操作,是
您将执行的操作

我建议创建一个标志,您可以在其中选择要执行的函数。 例如:

//function call    
calculator(2,5,'addition'); 

// function method
calculator(a,b,flag){
 switch(flag) {
     case 'addition': addNum(a,b);
        break;
        ...
}}

虽然这会记录结果,
calculation
函数在这里只是一个无用的包装器,但您也可以调用
console.log(addNum(2,3))
,这就是我提到改进代码的原因。我的示例是为了再次向op保证,op要求将函数作为参数传递是可能的。您好,Krisy,谢谢您的输入。我设法修复了代码,但我在每种情况下都重复console.log,在javascript中这是一条规则,DRY(不要重复你自己)。我阅读了你的评论,这很有意义。非常感谢您的投入。非常爱你!我还对我的代码做了一些修改,你们可以在这里看到:另外,我对你们的代码做了很小的修改。您可以在调用
calculator()
函数时获得返回的结果(即答案),然后使用
console.log()
函数显示结果,而不是在计算器函数中执行
console.log()
(您希望计算器执行的只是计算(而不是显示结果))。看一看代码笔,想知道一个更好的主意谢谢你,现在它看起来更好了!:)尼克诺,你是最好的,很高兴能帮上忙:)
//function call    
calculator(2,5,'addition'); 

// function method
calculator(a,b,flag){
 switch(flag) {
     case 'addition': addNum(a,b);
        break;
        ...
}}