Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 for/loop中的计数器变量。为什么一个程序可以工作而另一个失败?_Javascript_Function_For Loop_Sum - Fatal编程技术网

Javascript for/loop中的计数器变量。为什么一个程序可以工作而另一个失败?

Javascript for/loop中的计数器变量。为什么一个程序可以工作而另一个失败?,javascript,function,for-loop,sum,Javascript,Function,For Loop,Sum,所以,在用javascript编写一个从1到N(用户给出的数字)的求和程序时,我已经编写了一个工作程序,但我仍然不明白为什么我编写的一个建议解决方案有效,而另一个不有效 此版本有效: function spitback(){ var theNum = prompt("Give me a number"); var onwards = 0; for(i = 0; i <= theNum; i++){ onwards += i; } console.log(onwards); } spit

所以,在用javascript编写一个从1到N(用户给出的数字)的求和程序时,我已经编写了一个工作程序,但我仍然不明白为什么我编写的一个建议解决方案有效,而另一个不有效

此版本有效:

function spitback(){
var theNum = prompt("Give me a number");
var onwards = 0;
for(i = 0; i <= theNum; i++){
onwards += i;
}
  console.log(onwards);
}
spitback();
function spitback(){
var theNum = prompt("Give me a number");
var onwards = theNum;
for(i = 0; i <= theNum; i++){
onwards += i;
}
  console.log(onwards);
}
spitback();
函数spitback(){
var theNum=提示(“给我一个数字”);
var向前=0;

对于(i=0;i这是因为
prompt
返回一个字符串,而不是一个数字对字符串执行操作时,会得到串联,而不是整数增量。Javascript不会神奇地将字符串转换为整数,即使它看起来像整数。

这是因为
提示符
返回的是字符串,而不是数字。当您使用“+”时对字符串进行操作时,您得到的是串联,而不是整数增量。Javascript不会神奇地将字符串转换为整数,即使它看起来是这样。

第一个使用提示符的字符串工作得很好。我的困惑是,为什么将var forwards设置为theNum不起作用,为什么将forwards设置为0会起作用。等等,永远不要注意。我看到了逻辑。谢谢Vladislav。第一个使用提示符的方法很好。我的困惑是为什么将var向前设置为theNum不起作用,以及为什么将forwards设置为0会起作用。等等,没关系。我看到了逻辑。谢谢Vladislav。不是我的困惑。我的困惑是为什么将var向前设置为theNum不起作用,为什么将Forwards设置为0会起作用。这不是我的困惑所在。我的困惑在于为什么将var Forwards设置为theNum不起作用,以及为什么将Forwards设置为0会起作用。