Functions name reusable work and return values to the caller.

function call A function call runs the named function and can use the returned value in another expression.

Functions

side
functions.js
Replay: real traced execution (multi-file project)
function square(value) {
  return value * value;
}

const side = 5;
const area = square(side);

console.log("side=" + side);
console.log("area=" + area);
function square(value) {
  return value * value;
}

const side = 3;
const area = square(side);

console.log("side=" + side);
console.log("area=" + area);
function square(value) {
  return value * value;
}

const side = 8;
const area = square(side);

console.log("side=" + side);
console.log("area=" + area);
  1. side ← 5

    2  return value * value;3}45const side→ 5 = 5; //@side=3, 86const area = square(side5);
  2. function square(value)

    1function square(value5) {2  return value * value5;3}
  3. area ← 25

    5const side = 5; //@side=3, 86const area→ 25 = square(side5);78console.log("side=" + side5);9console.log("area=" + area25);
    outputside=5
    area=25
  1. side ← 3

    2  return value * value;3}45const side→ 3 = 3;6const area = square(side3);
  2. function square(value)

    1function square(value3) {2  return value * value3;3}
  3. area ← 9

    5const side = 3;6const area→ 9 = square(side3);78console.log("side=" + side3);9console.log("area=" + area9);
    outputside=3
    area=9
  1. side ← 8

    2  return value * value;3}45const side→ 8 = 8;6const area = square(side8);
  2. function square(value)

    1function square(value8) {2  return value * value8;3}
  3. area ← 64

    5const side = 8;6const area→ 64 = square(side8);78console.log("side=" + side8);9console.log("area=" + area64);
    outputside=8
    area=64

Follow the Function Call

  1. side starts at 5.
  2. square(side) sends 5 into the function.
  3. The function returns 5 * 5.
  4. area becomes 25.
  5. The program prints side=5 and area=25. | side | square result | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |

Exercise: functions.js

Reproduce area=25 for side 5, then try side 3 and 8 and predict each area before running it.