27

假设我有一个这样的函数,我在整个脚本中调用它:

  function form_senden( form_name, cnf, confirm_txt, trigger_field, ,do_check, chknfcs, allow, errorMsg ){
  // do something 
  }

在我的大多数函数调用中,我只传递了第一个参数。

问题:
在这种情况下是否可以省略传递空参数,如下所示:

  form_senden("abc");

或者我是否需要传递所有参数,无论它们是否像这样使用:

  form_senden("abc","","","","","","","","");

谢谢!

4

8 回答 8

118

只传递第一个参数是可以的,因为不会设置所有其他参数。如果要设置第一个和第三个参数,则需要使第二个为空,如下所示:

form_senden("a",null,"b");
于 2012-09-23T21:06:31.603 回答
27

form_senden("abc"); 没问题

其他参数将被初始化为未定义

于 2012-09-23T21:06:23.437 回答
3

您可以form_senden("abc");将默认值放入函数定义中。

    function form_senden( form_name, cnf , confirm_txt , trigger_field , ,do_check , chknfcs, allow, errorMsg  ){

if(typeof(cnf)==='undefined') cnf = '';
if(typeof(confirm_txt)==='undefined') confirm_txt = ''; ...and so on
// do something 
}
于 2012-09-23T21:05:49.853 回答
2

省略函数参数是可以的,缺少的参数将undefined在函数中具有价值。

于 2012-09-23T21:05:38.337 回答
2

如果你有类似的东西:

const myFunc = (a = 1, b = 2, c = 3) => a + b + c;

如果你打电话myFunc();,你会得到6

但是如果你想用c = 4调用 myFunc并让ab为其默认值,你可以这样调用myFunc

myFunc(undefined, undefined, 4);这将返回7

于 2020-01-20T12:05:05.830 回答
1

为了完整起见,在 ES6 (ES2015) 及更高版本中,可以指定默认值

// `b` will default to 1

function multiply(a, b = 1) {
  return a * b;
}
于 2018-05-18T01:34:25.343 回答
1

在这里,我找到了将空值或空值传递给函数的解决方案。它适用于 node.js

    function returnJSON(name,value1,value2,text){
        return object = {
            'name':name,
            'value1':value1,
            'value2':value2,
            'text':text
        }
    }
    returnJSON('Hello World',undefined,undefined,'This is Text');
于 2020-02-27T20:28:42.047 回答
0

关于默认参数设置。如果您使用函数 f(arg=1) {} 等默认参数设置,则默认值的设置将不适用于传入的 false、nulll 或零。您必须将 arg/参数留空或传入不明确的。

于 2018-08-21T17:59:34.987 回答