所以,在编写一个程序 - 在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旁边的所有迭代之间的连接它,就像它是一个字符串。在我看来,将变量设置为相同的值,然后将该值更改为添加计数器的迭代应该可行!为什么不起作用?请分享。
答案 0 :(得分:3)
这是因为prompt
返回一个字符串,而不是一个数字。当您对字符串使用“+”操作时,您将获得连接,而不是整数增量。 Javascript不会神奇地将你的字符串转换为整数,即使它看起来像。