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

时间:2015-11-24 11:12:30

标签: 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);
}
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();

为什么第二个不起作用?如果我最初将var设置为theNum(由用户输入)然后让函数向前添加到'i'的迭代直到计数器到达Num,我将看到theNum和i旁边的所有迭代之间的连接它,就像它是一个字符串。在我看来,将变量设置为相同的值,然后将该值更改为添加计数器的迭代应该可行!为什么不起作用?请分享。

1 个答案:

答案 0 :(得分:3)

这是因为prompt返回一个字符串,而不是一个数字。当您对字符串使用“+”操作时,您将获得连接,而不是整数增量。 Javascript不会神奇地将你的字符串转换为整数,即使它看起来像。