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

base
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);
  1. base ← 200

    2  return amount + (amount * rate) / 100;3}45const base→ 200 = 200; //@base=100, 5006const withDefault = addTax(base200);7const withRate = addTax(base, 25);
  2. function addTax(amount, rate = 10)

    pass 1 of 2
    1function addTax(amount200, rate10 = 10) {2  return amount + (amount * rate) / 100;3}
  3. withDefault ← 220

    5const base = 200; //@base=100, 5006const withDefault→ 220 = addTax(base200);7const withRate = addTax(base200, 25);
  4. function addTax(amount, rate = 10)

    pass 2 of 2
    1function addTax(amount200, rate25 = 10) {2  return amount + (amount * rate) / 100;3}
  5. 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
  1. base ← 100

    2  return amount + (amount * rate) / 100;3}45const base→ 100 = 100;6const withDefault = addTax(base100);7const withRate = addTax(base, 25);
  2. function addTax(amount, rate = 10)

    pass 1 of 2
    1function addTax(amount100, rate10 = 10) {2  return amount + (amount * rate) / 100;3}
  3. withDefault ← 110

    5const base = 100;6const withDefault→ 110 = addTax(base100);7const withRate = addTax(base100, 25);
  4. function addTax(amount, rate = 10)

    pass 2 of 2
    1function addTax(amount100, rate25 = 10) {2  return amount + (amount * rate) / 100;3}
  5. 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
  1. base ← 500

    2  return amount + (amount * rate) / 100;3}45const base→ 500 = 500;6const withDefault = addTax(base500);7const withRate = addTax(base, 25);
  2. function addTax(amount, rate = 10)

    pass 1 of 2
    1function addTax(amount500, rate10 = 10) {2  return amount + (amount * rate) / 100;3}
  3. withDefault ← 550

    5const base = 500;6const withDefault→ 550 = addTax(base500);7const withRate = addTax(base500, 25);
  4. function addTax(amount, rate = 10)

    pass 2 of 2
    1function addTax(amount500, rate25 = 10) {2  return amount + (amount * rate) / 100;3}
  5. 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