我是初学者Javascript uni学生,我在下面问题的一部分得到答案时遇到了一些困难。
跟踪以下JavaScript代码,并编写最终值 变量(
x
,y
,z
,w
)。展示你的工作。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 = 18
,y = "35"
,z = 36
W正在困扰我我知道= 144
,我只是不确定如何。
如果有人能够解释当它通过冷函数时会发生什么。
答案 0 :(得分:2)
当冷函数运行时,它需要a
,将其分配给变量ans
,然后启动for
循环,该循环在0 <= i < 3
运行,并添加a
每次都要ans
。
因此,如果循环变量i
从0开始,则运行一次(ans + a
),然后再次运行i=1
(ans + a + a
)和i=2
( ans + 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