需要帮助来了解这种情况

San*_* P. -6 javascript function

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

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

var b;

doSomething(2); //15
Run Code Online (Sandbox Code Playgroud)

我不明白为什么结果是15; 有人可以向我解释在这种情况下我该怎么想?

mar*_*308 6

使用参数4(a*2)调用doSomethingElse().它返回3.(3 + 2)*3 = 15

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

function doSomethingElse(a) {   
      console.log('params b', a);
      return a - 1;  
}

var b;

doSomething(2); //15
Run Code Online (Sandbox Code Playgroud)