関数のパラメータのデフォルト値
前ES6のために、直接、関数のパラメータのデフォルト値を指定するが、代替の方法を使用していません。
function log(x, y) {
y = y || 'World';
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello World
表面コードチェック機能のlog
パラメータyが値を持たない、とされていない場合、デフォルト値が指定されていますWorld
。このようなアプローチは、Yパラメータの割り当てが、対応するブール値があれば、という問題false
、割り当てが仕事をしません。上記のようにコードの最後の行は、パラメータがy
ヌル文字に等しく、結果はデフォルト値に変更しました。
この問題を回避するには、通常、あなたはどのようなパラメータを決定する必要がy
割り当てられた場合には、そうでない場合は、デフォルト値に等しいです。
if (typeof y === 'undefined') {
y = 'World';
}
ES6関数、すなわちパラメータ定義の直後に書き込まれ、パラメータのデフォルト値を設定することを可能にします。
function log(x, y = 'World') {
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello