Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 - Fatal编程技术网

如何在javascript函数中为参数的特定默认值设置值

如何在javascript函数中为参数的特定默认值设置值,javascript,Javascript,对不起,如果这是一个转载,但我还没有找到答案 假设您具有以下功能: function calculus(a, b = 2, c = 3) { return a + b - c; } 我想做的是传递参数a和c的新值,而不必编辑b 因此,我在下面的代码片段中编写了我尝试过的方法 函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:结果”+微积分(2)) document.body.appendChild(document.crea

对不起,如果这是一个转载,但我还没有找到答案

假设您具有以下功能:

function calculus(a, b = 2, c = 3)  {
   return a + b - c; 
}
我想做的是传递参数a和c的新值,而不必编辑b

因此,我在下面的代码片段中编写了我尝试过的方法

函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:结果”+微积分(2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例2:结果”+微积分(2,2,2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“Csse 3:Result”+演算(2,c=2)) document.body.appendChild(document.createElement(“br”)); //下一行语法错误
//document.body.append(“案例4:+calculation(2,c:3))只需传递
未定义的参数即可:

函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:结果”+微积分(2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例2:结果”+微积分(2,2,2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例3:结果”+演算(2,未定义,2)) document.body.appendChild(document.createElement(“br”));
document.body.append(“案例4:Result”+演算(2,未定义,3))
只需对要忽略的参数传递
未定义的

函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:结果”+微积分(2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例2:结果”+微积分(2,2,2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例3:结果”+演算(2,未定义,2)) document.body.appendChild(document.createElement(“br”));
document.body.append(“案例4:Result”+演算(2,未定义,3))对此没有特殊语法,但可以使用如下语法:

calculus( ...[2,,2] )
这将通过
a
c
作为
2
b
作为
未定义的
。因此,当
b
undefined
时,将使用
b
的默认值。另外,要知道使用
演算(…[2,2])
与执行以下操作相同:

calculus( 2, undefined, 2 )
扩展语法
myFunction(…array)
只是这里使用相同逻辑的一个简单方法

函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:演算(2)-->”+演算(2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例2:微积分(2,2,2)-->”+微积分(2,2,2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“Csse 3:演算(…[2,2])-->“+演算(…[2,2])) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例4:演算(…[2,3])-->”+演算(…[2,3])) document.body.appendChild(document.createElement(“br”));
document.body.append(“案例5:演算(2,未定义,3)-->”+演算(2,未定义,3))
对此没有特殊语法,但可以使用以下语法:

calculus( ...[2,,2] )
这将通过
a
c
作为
2
b
作为
未定义的
。因此,当
b
undefined
时,将使用
b
的默认值。另外,要知道使用
演算(…[2,2])
与执行以下操作相同:

calculus( 2, undefined, 2 )
扩展语法
myFunction(…array)
只是这里使用相同逻辑的一个简单方法

函数演算(a,b=2,c=3){ 返回a+b-c; } document.body.append(“案例1:演算(2)-->”+演算(2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例2:微积分(2,2,2)-->”+微积分(2,2,2)) document.body.appendChild(document.createElement(“br”)); document.body.append(“Csse 3:演算(…[2,2])-->“+演算(…[2,2])) document.body.appendChild(document.createElement(“br”)); document.body.append(“案例4:演算(…[2,3])-->”+演算(…[2,3])) document.body.appendChild(document.createElement(“br”));
document.body.append(“案例5:演算(2,未定义,3)-->”+演算(2,未定义,3))
通过依次指定2个逗号并将其全部包装在一个数组中,可以跳过指定此参数

calculus([2,,3])

通过依次指定2个逗号并将其全部包装在一个数组中,可以跳过指定此参数

calculus([2,,3])

c=2
函数调用内部只是一个变量赋值,因此您隐式创建了一个全局变量c。
c=2
函数调用内部只是一个变量赋值,因此您隐式创建了一个全局变量c。感谢您的回答,也许将来会添加类似“c=2”的语法,因为我希望在调用函数并开始键入函数args时,函数至少需要第一个参数,就像linting告诉您需要第一个参数一样;我假设object/array params不会这样做感谢您的回答,也许将来会添加类似“c=2”的语法,因为我希望当您调用函数并开始键入函数args时,函数至少需要第一个参数,比如linting向您显示需要第一个参数;我假设对象/数组参数不会这样做