重複している可能性があります:
JavaScript関数のパラメータにデフォルト値を設定する方法
pHPでは:
function func($a = 10, $b = 20){
// if func() is called with no arguments $a will be 10 and $ b will be 20
}
JavaScriptでこれをどのように行うことができますか?
関数の引数に値を代入しようとするとエラーが発生します
仮パラメータの後)
JavaScriptでは、パラメータなしで関数を呼び出すことができます(パラメータがある場合でも)。
したがって、次のようにデフォルト値を追加することができます。
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
//your code
}
そして、あなたはfunc();
のようにそれを呼び出してデフォルトのパラメータを使うことができます。
これがテストです。
function func(a, b){
if (typeof(a)==='undefined') a = 10;
if (typeof(b)==='undefined') b = 20;
alert("A: "+a+"\nB: "+b);
}
//testing
func();
func(80);
func(100,200);
ES2015以降:
ES6/ES2015以降、言語仕様にデフォルトパラメータがあります。だから私たちはただのような簡単なことをすることができます、
function A(a, b = 4, c = 5) {
}
または ES2015破壊 と組み合わせて、
function B({c} = {c: 2}, [d, e] = [3, 4]) {
}
詳細な説明は
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/default_parameters
デフォルト関数パラメータは、値なしまたは未定義が渡された場合、仮パラメータをデフォルト値で初期化することを可能にします。
Pre ES2015:
NOT Numbers、Strings、Boolean、NaN
、またはnull
のような値を処理する場合は、単に使用することができます
(だから、あなたが決してnull
を送ることを計画していないオブジェクト、配列、および関数のために、あなたは使うことができます)
param || DEFAULT_VALUE
例えば、
function X(a) {
a = a || function() {};
}
これは単純に見え、ちょっとうまくいきますが、||
はすべての偽の値(""
、null
、NaN
、false
、0
)にも作用するため、これは制限的でアンチパターンになることがあります。引数として渡されます。
そのため、undefined
値のみを明示的に処理するには、次のようにします。
function C(a, b) {
a = typeof a === 'undefined' ? DEFAULT_VALUE_A : a;
b = typeof b === 'undefined' ? DEFAULT_VALUE_B : b;
}
私はそれがJavaScriptでそのように行われたのを見たことがありません。パラメータを省略した場合にデフォルト値が割り当てられるオプションのパラメータを持つ関数が必要な場合は、次のようにします。
function(a, b) {
if (typeof a == "undefined") {
a = 10;
}
if (typeof b == "undefined") {
a = 20;
}
alert("a: " + a + " b: " + b);
}
function func(a, b)
{
if (typeof a == 'undefined')
a = 10;
if (typeof b == 'undefined')
b = 20;
// do what you want ... for example
alert(a + ',' + b);
}
速記で
function func(a, b)
{
a = (typeof a == 'undefined')?10:a;
b = (typeof b == 'undefined')?20:b;
// do what you want ... for example
alert(a + ',' + b);
}
関数パラメータにデフォルト値を追加することはできません。しかし、あなたはこれを行うことができます:
function tester(paramA, paramB){
if (typeof paramA == "undefined"){
paramA = defaultValue;
}
if (typeof paramB == "undefined"){
paramB = defaultValue;
}
}