我需要向 JavaScript 函数传递空参数吗?

问题描述 投票:0回答:8

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

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

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

问题:
在这种情况下,可以像这样省略传递空参数吗:

  form_senden("abc");

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

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

谢谢!

javascript function parameters optional-parameters
8个回答
123
投票

只传递第一个参数是可以的,其他参数不会被设置。 如果要设置第一个和第三个参数,则需要设置第二个

undefined
,如下所示:

form_senden("a",undefined,"b");

28
投票

form_senden(“abc”);还可以吗

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


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 
}

2
投票

省略函数参数是可以的,缺少的参数在函数中会有

undefined
值。


2
投票

如果您有类似的情况:

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

如果您致电

myFunc();
,您将得到 6

但是,例如,如果您想使用 c = 4 调用 myFunc 并让 ab 保持默认值,则可以像这样调用 myFunc

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


1
投票

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

// `b` will default to 1

function multiply(a, b = 1) {
  return a * b;
}

1
投票

关于默认参数设置。如果您使用默认参数设置,例如 function f(arg=1) {},则默认值的设置将不适用于传入 false、null 或 0。您必须将 arg/参数留空或传入未定义。


1
投票

在这里,我找到了将 null 或空值传递给函数的解决方案。它可以在 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');
© www.soinside.com 2019 - 2024. All rights reserved.