当我在JavaScript中使用prompt()
方法时,如下所示:
var n=prompt("Enter an integer"); //passing 2 as value
n=(n+n);
document.writeln("n+n value is:"+n);
然后(n+n)
被22
连接起来而不是添加为4
但是当我不使用prompt()
时,即:
var n=2;
n=(n+n)
document.writeln("n+n value is:"+n);
然后它可以正常添加,答案是4
为什么会这样?
答案 0 :(得分:0)
使用parseInt将String转换为Int
var n = parseInt( prompt("Enter an integer") ); //passing 2 as value
n=(n+n);
document.writeln("n+n value is:"+n);
更多信息here
答案 1 :(得分:0)
prompt("Enter an integer");
返回string
转换后,您可以使用parseInt()
var n = parseInt(prompt("Enter an integer"));
<强> SEE FIDDLE DEMO 强>
答案 2 :(得分:0)
更改
echo "$list" | wc -w
到
i="$lijst" | wc -w
echo i
就像你var n =prompt("Enter an integer")
一样,你会得到一个var n = Number( prompt("Enter an integer") )
,这意味着n实际上是一个字符串。
的串联
console.log(typeof n)
是string
因此您需要将其更改为数字。为此,您可以使用 Number() 或 parseInt() 。
答案 3 :(得分:0)
使用数据类型var声明的变量可以保存在某个时刻分配给它的任何类型的变量。
例如。
var j = 1; // here j will be an integer datatype and will act as int after this
var j = "1"; //here j will be a string datatype and will act as int after this
在你的第一个案例中
var n=prompt("Enter an integer");
此处字符串将保存在变量“&n”中。因此n将充当字符串变量。因此(n + n)将导致两个字符串的连接。
在你的第二个案例中
var n = 2;
在这里,n持有一个整数,因此n充当int变量。 这就是为什么(n + n)导致SUM而不是连接。