Functions and Scope
Default Parameters
Give a parameter a fallback when no argument is passed.
default-params
A default parameter supplies a value when the caller omits that argument. Passing the argument explicitly overrides the default.
Default Parameters
default_params.js
Replay: real traced execution (multi-file project)
function addTax(amount, rate = 10) {
return amount + (amount * rate) / 100;
}
const base = 200;
const withDefault = addTax(base);
const withRate = addTax(base, 25);
console.log("withDefault=" + withDefault);
console.log("withRate=" + withRate);
function addTax(amount, rate = 10) {
return amount + (amount * rate) / 100;
}
const base = 100;
const withDefault = addTax(base);
const withRate = addTax(base, 25);
console.log("withDefault=" + withDefault);
console.log("withRate=" + withRate);
function addTax(amount, rate = 10) {
return amount + (amount * rate) / 100;
}
const base = 500;
const withDefault = addTax(base);
const withRate = addTax(base, 25);
console.log("withDefault=" + withDefault);
console.log("withRate=" + withRate);
base ← 200
2 return amount + (amount * rate) / 100;3}45const base→ 200 = 200; //@base=100, 5006const withDefault = addTax(base200);7const withRate = addTax(base, 25);function addTax(amount, rate = 10)
pass 1 of 21function addTax(amount200, rate10 = 10) {2 return amount + (amount * rate) / 100;3}withDefault ← 220
5const base = 200; //@base=100, 5006const withDefault→ 220 = addTax(base200);7const withRate = addTax(base200, 25);function addTax(amount, rate = 10)
pass 2 of 21function addTax(amount200, rate25 = 10) {2 return amount + (amount * rate) / 100;3}withRate ← 250
5const base = 200; //@base=100, 5006const withDefault = addTax(base);7const withRate→ 250 = addTax(base200, 25);89console.log("withDefault=" + withDefault220);10console.log("withRate=" + withRate250);outputwithDefault=220 withRate=250
base ← 100
2 return amount + (amount * rate) / 100;3}45const base→ 100 = 100;6const withDefault = addTax(base100);7const withRate = addTax(base, 25);function addTax(amount, rate = 10)
pass 1 of 21function addTax(amount100, rate10 = 10) {2 return amount + (amount * rate) / 100;3}withDefault ← 110
5const base = 100;6const withDefault→ 110 = addTax(base100);7const withRate = addTax(base100, 25);function addTax(amount, rate = 10)
pass 2 of 21function addTax(amount100, rate25 = 10) {2 return amount + (amount * rate) / 100;3}withRate ← 125
5const base = 100;6const withDefault = addTax(base);7const withRate→ 125 = addTax(base100, 25);89console.log("withDefault=" + withDefault110);10console.log("withRate=" + withRate125);outputwithDefault=110 withRate=125
base ← 500
2 return amount + (amount * rate) / 100;3}45const base→ 500 = 500;6const withDefault = addTax(base500);7const withRate = addTax(base, 25);function addTax(amount, rate = 10)
pass 1 of 21function addTax(amount500, rate10 = 10) {2 return amount + (amount * rate) / 100;3}withDefault ← 550
5const base = 500;6const withDefault→ 550 = addTax(base500);7const withRate = addTax(base500, 25);function addTax(amount, rate = 10)
pass 2 of 21function addTax(amount500, rate25 = 10) {2 return amount + (amount * rate) / 100;3}withRate ← 625
5const base = 500;6const withDefault = addTax(base);7const withRate→ 625 = addTax(base500, 25);89console.log("withDefault=" + withDefault550);10console.log("withRate=" + withRate625);outputwithDefault=550 withRate=625