function calculator(a, b, operation) {
if (addNum()) {
var result = addNum(); // 4
console.log("the result is " + result);
} if (subsNum()) {
result = subsNum(); // 2
console.log("the result is " + result);
} if (multNum()) {
result = multNum(); // 6
console.log("the result is " + result);
} if (divNum()) {
result = divNum(); // 1
console.log("the result is " + result);
}
}
function addNum(a, b) {
return 2 + 2;
// return a + b; //why not?
}
function subsNum(a, b) {
return 4 - 2;
// return a - b;
}
function multNum(a, b) {
return 2 * 3;
// return a * b;
}
function divNum(a, b) {
return 8 / 8;
// return a / b;
}
calculator();
创建一个使用2个参数并返回这些参数总和的函数addNumbers。
创建一个包含两个参数并返回这些参数之差的函数减去数字。
创建一个包含两个参数并返回这些参数乘积的函数multipleNumbers。
创建一个使用2个参数并返回这些参数的商的函数divideNumbers。
创建一个包含3个参数的函数计算器。前两个参数是数字。第三个参数称为operation,是您将要执行的操作。
如何用参数替换整数(例如在addNum()
函数中添加a + b而不是2 + 2),然后在用任何方法调用calculator()
函数时如何替换这些参数你想要整数吗?是否可以这样做calculator(addNum(2,5));
? addNum(a,b )
是否返回a + b?
答案 0 :(得分:0)
无需使用if语句调用它,因为它会使事情复杂化。
是否有可能像这个计算器那样做(addNum(2,5)); ?如果addNum(a,b)返回a + b?
这是可能的,您应该那样做。基本上,您是将一个函数传递给计算器函数。因此,它的工作方式类似于-> calculator function
接受包含另一个函数(operation
,addNum
等)的subsNum
参数并执行它。
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
还有改进代码和重复的空间。但这是另一个故事。
答案 1 :(得分:0)
如何用
addNum()
函数中的arguments(在 添加a + b代替2 + 2的示例)
如前所述,您可以使用参数。使用参数可以将变量传递到函数中,以便可以使用它们。 例如:
function addNum(a, b) {
return a + b;
}
因此,既然addNum
接受2个值(因为它们是两个参数a
和b
),那么您在调用自己的电话时必须通过功能:
addNum(5, 2);
<---这将返回(不打印)5(a
)加(+
)2(b
)的值,因此返回7 < / p>
这是使用参数的方式。
在调用Calculator()时如何替换这些参数 可以使用您想要的整数吗?
如果计算器具有3个自变量a
,b
和operation
,则表示在计算器函数a
中代表第一个数字,b
代表第一个数字第二个数字,operation
代表数学运算符。当函数执行并运行时,所有这些变量都将具有值。因此,在计算器中,您可以使用operation
语句检查if
等于什么(例如:如果operation == "addition"
,则用两个数字{ {1}}和addNum
(因此我们将执行a
将两个数字相加)。您可以将此逻辑应用于其他操作。
是否有可能像这个计算器那样做(addNum(2,5)); ?如果 addNum(a,b)返回a + b?
虽然这是完全可能的,但您必须重写b
函数。此外,这不符合您提供的规格。目前,使用您提供的代码,您无法执行此操作,因为您的addNum(a, b)
函数需要3个参数:
calculator
-第一个数字
calculator
-第二个数字
a
-告诉我们是否要添加(b
),减去(operation
)等的运算符
因此,在调用addition
函数时,必须通过这3个参数 pass 。进行subtraction
并不会实现这一点,因为calculator
的结果为7,所以这等效于编写calculator(addNum(2,5));
,这在您在这种情况下仅传递一个参数是没有意义的
因此,为了正确使用addNum(2, 5)
函数,您需要像这样传递3个值:
calculator(7)
这将告诉计算器函数将两个数字(2和5)加在一起(由于calculator
为“加法”)。但是,为了使它起作用,您首先必须编辑计算器函数的内部内容,以适应测试calculator(2, 5, "addition")
是什么的逻辑,以便正确决定要调用的函数。
答案 2 :(得分:0)
创建一个包含3个参数的函数计算器。前两个 参数是数字。第三个参数称为运算,是 您将执行的操作。
我建议创建一个标志,您可以在其中选择要执行的功能。 例如:
//function call
calculator(2,5,'addition');
// function method
calculator(a,b,flag){
switch(flag) {
case 'addition': addNum(a,b);
break;
...
}}