谁能解释为什么此代码串联而不是加数值?

时间:2020-02-14 00:55:41

标签: javascript concatenation addition parseint

因此,首先,我知道这段代码很乱,请耐心等待,但是没有人能解释为什么它会继续连接输入的信息,而不是在通过parseInt()后再加上数值吗?

var sol = 0;
var n = 0;

while(n !== null)
{

parseInt(n = prompt("Please enter a number to be added onto stack"));
  if(n != null || n != NaN)
  {
    sol = parseInt(sol);
    sol += n;
  }

}
console.log(sol);

1 个答案:

答案 0 :(得分:5)

prompt()返回一个字符串。

parseInt()接受一个字符串并返回一个数字。

对于第一个parseInt的返回值,您没有做任何事情。这意味着n是一个字符串。因此,当您执行sol += n时,您是在将一个字符串和一个数字加在一起,而javascript则假定您打算将字符串连接在一起,因为带有字符串和数字的数学没有任何意义。

您可能打算这样做:

n = parseInt(prompt("Please enter a number to be added onto stack"));