Functions and Scope
Function Scope
Keep a variable local to the function that declares it.
function-scope
A variable declared inside a function is local to that function. Only the returned value escapes; the local stays private.
Function Scope
function_scope.js
Replay: real traced execution (multi-file project)
function compute(base) {
const local = base + 1;
return local * 2;
}
const start = 5;
const result = compute(start);
console.log("start=" + start);
console.log("result=" + result);
function compute(base) {
const local = base + 1;
return local * 2;
}
const start = 3;
const result = compute(start);
console.log("start=" + start);
console.log("result=" + result);
function compute(base) {
const local = base + 1;
return local * 2;
}
const start = 10;
const result = compute(start);
console.log("start=" + start);
console.log("result=" + result);
start ← 5
3 return local * 2;4}56const start→ 5 = 5; //@start=3, 107const result = compute(start5);local ← 6, base ← 5
1function compute(base5) {2 const local→ 6 = base→ 5 + 1;3 return local * 2;4}result ← 12
6const start = 5; //@start=3, 107const result→ 12 = compute(start5);89console.log("start=" + start5);10console.log("result=" + result12);outputstart=5 result=12
start ← 3
3 return local * 2;4}56const start→ 3 = 3;7const result = compute(start3);local ← 4, base ← 3
1function compute(base3) {2 const local→ 4 = base→ 3 + 1;3 return local * 2;4}result ← 8
6const start = 3;7const result→ 8 = compute(start3);89console.log("start=" + start3);10console.log("result=" + result8);outputstart=3 result=8
start ← 10
3 return local * 2;4}56const start→ 10 = 10;7const result = compute(start10);local ← 11, base ← 10
1function compute(base10) {2 const local→ 11 = base→ 10 + 1;3 return local * 2;4}result ← 22
6const start = 10;7const result→ 22 = compute(start10);89console.log("start=" + start10);10console.log("result=" + result22);outputstart=10 result=22