Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找变量-Javascript_Javascript - Fatal编程技术网

查找变量-Javascript

查找变量-Javascript,javascript,Javascript,我是一名Javascript大学的初学者,对于下面问题的一部分,我很难找到答案 跟踪以下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) { v

我是一名Javascript大学的初学者,对于下面问题的一部分,我很难找到答案

跟踪以下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”;
功能热(a、b、c){
如果(a==b){
返回(c+b);
}
否则,如果(a>b){
返回(c+c);
}
否则{
复冷(b);
}
}
功能冷(a){
var ans=a;
对于(变量i=0;i<3;i++){
ans=ans+a;
}
返回ans;
}
var x=10;
变量y=3;
x=x+8;
var z=热(x,y,x);
var w=2;
w=热(w,z,x);
y=y+“5”;
我计算出
x=18
y=“35”
z=36

W是困扰我的问题我知道它
=144
,我只是不知道如何解决。

如果有人能解释一下当它运行cold函数时会发生什么。

当cold函数运行时,它需要
a
,将其分配给变量
ans
,然后启动
for
循环,该循环在
0时运行,您将得到
x=10+8=18。

然后您将得到
z=hot(18,3,18)

所以z会变成36,因为a是18,b是3

因此它返回
c+c
,即18+18=36

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

这里a不等于c,a也不大于b。所以它进入冷态(b),也就是冷态(36)

此处
ans=36

它将进入for循环3次

因此ans=a+ans


由于ans已经是36,您将再添加36次,使其达到144次

在浏览器中打开JS控制台,并在代码中放置断点。逐行查看变量值的变化。或者更确切地说,在
hot(w,z,x)
调用中放置一个断点,然后重复按Step into。感谢您详细解释,我理解我的错误所在。感谢您解释这是一个细节,我真的需要有人来分解它。
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)