寻找变量 - Javascript

时间:2014-09-07 12:36:29

标签: javascript

我是初学者Javascript uni学生,我在下面问题的一部分得到答案时遇到了一些困难。

  

跟踪以下JavaScript代码,并编写最终值   变量(xyzw)。展示你的工作。

function hot(a, b, c) {
  if (a == b) {
    return (c + b);
  }
  else if (a > b) {
    return (c + c);
  }
  else {
    return cold(b);
  }
}


function cold(a) {
  var ans = a;
  for (var i = 0; i < 3; i++) {
    ans = ans + a;
  }
  return ans;
}


var x = 10;
var y = 3;
x = x + 8;
var z = hot(x, y, x);
var w = 2;
w = hot(w, z, x);
y = y + “5”;

我制定了x = 18y = "35"z = 36 W正在困扰我我知道= 144,我只是不确定如何。
如果有人能够解释当它通过冷函数时会发生什么。

2 个答案:

答案 0 :(得分:2)

当冷函数运行时,它需要a,将其分配给变量ans,然后启动for循环,该循环在0 <= i < 3运行,并添加a每次都要ans

因此,如果循环变量i从0开始,则运行一次(ans + a),然后再次运行i=1ans + a + a)和i=2ans + a + a + a)。所以函数返回4a

cold(2)

var ans = 2;

i = 0, 0 < 3, therefore ans = 2 + 2
i = 1, 1 < 3, therefore ans = 2 + 2 + 2
i = 2, 2 < 3, therefore ans = 2 + 2 + 2 + 2
i = 3, 3 = 3, therefore loop ends

2 + 2 + 2 + 2 = 4(2)

答案 1 :(得分:0)

您将获得x= 10+8= 18.

然后你会得到z=hot(18,3,18)

所以z将变为36,因为'a'是18&gt; 'b'是3。

所以它返回c + c,即18 + 18 = 36。

进一步w=hot(2,36,18)

这里ant等于c,a不大于b。所以它进入冷(b),这意味着冷(36)

此处ans=36

它将进入for循环3次。

因此ans = a + ans

由于ans已经是36,你将增加36次,再增加3次,使其成为144