web-dev-qa-db-ja.com

空のパラメーターをjavascript関数に渡す必要がありますか?

次のような関数があり、スクリプト全体で呼び出しているとします。

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

ほとんどの関数呼び出しでは、最初のパラメーターのみを渡します。

質問:
この場合、次のように空のパラメーターを渡すことを省略してもかまいません。

  form_senden("abc");

または、次のように使用されているかどうかにかかわらず、すべてのパラメーターを渡す必要がありますか?

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

ありがとう!

20
frequent

form_senden( "abc");オンです

他のパラメータは未定義として初期化されます

18
camino

他のすべては設定されないため、最初のパラメータのみを渡すことは可能です。 1番目と3番目の引数を設定する場合は、次のように2番目のNULLを作成する必要があります。

form_senden("a",null,"b");
93
Gung Foo

関数定義にデフォルト値を入れて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 
}
3
Teena Thomas

関数パラメーターを省略しても問題ありません。欠落しているパラメーターは、関数内でundefined値を持ちます。

2
lanzz

完全を期すために、ES6(ES2015)以降では、デフォルト値を指定できます

// `b` will default to 1

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

デフォルトのパラメーター設定について。関数f(arg = 1){}などのデフォルトのパラメーター設定を使用している場合、デフォルト値の設定は、渡されたfalse、null、またはゼロでは機能しません。引数/パラメーターを空のままにするか、渡す必要があります未定義。

0
jamess