デフォルト引数の副作用
デフォルト引数での副作用は避けてください。コードの理解が困難になります。
デフォルト引数の式は、関数が呼び出されるたびに評価されます。この式が外部の変数を変更するような副作用を持つ場合、関数の呼び出しがグローバルな状態に影響を与え、予測が困難でデバッグしにくいコードになります。関数は可能な限り純粋であるべきです。
デフォルト引数での副作用は避けてください。コードの理解が困難になります。
デフォルト引数の式は、関数が呼び出されるたびに評価されます。この式が外部の変数を変更するような副作用を持つ場合、関数の呼び出しがグローバルな状態に影響を与え、予測が困難でデバッグしにくいコードになります。関数は可能な限り純粋であるべきです。
let b = 1;
// bad
function count(a = b++) {
console.log(a);
}
count(); // 1
count(); // 2
count(3); // 3
count(); // 3let b = 1;
// good
function count(a) {
const val = a === undefined ? b++ : a;
console.log(val);
}