[Solved] need help to understand this situation [closed]


function doSomething(a) {
    b = a + doSomethingElse(a * 2);
    console.log(b * 3);
}

function doSomethingElse(a) {
    return a - 1;
}

var b;

doSomething(2); //15

When you call doSomething(2); you pass value 2 to your function doSomething(a) so value of a inside this function is a = 2.

Now you have b = a + doSomethingElse(a * 2) with a = 2 it’s b = 2 + doSomethingElse(4) correct ?

In your doSomethingElse(a) function you pass value 4 so a = 4 inside that function. It returns a - 1 so if a = 4 it will return 3.

Now back to b = 2 + doSomethingElse(4) since doSomethingElse(4) returns 3 the result is b = 2 + 3.

In your next step you’re printing out b * 3 -> console.log(b * 3) which results in 15.

This is because values of a are local within a functions scope, you can check this for reference:

Javascript Scope

0

solved need help to understand this situation [closed]