我是JavaScript新手。我正在尝试制作一个练习程序,它在最小值和最大值之间生成一个随机数。我在下面的程序中遇到了一个问题。 var2 + min
无法正常工作。如果我用实际值替换变量min,那么它可以工作。我做错了什么?
var var1=Math.random()
var min = prompt("Enter Min value:")
var max = prompt("Enter max value:")
alert("min is "+min+" max is "+max)
var var2=var1*(max-min)
var var3=var2+min
var var4=Math.floor(var3)
alert("var1= "+var1+" var2= "+var2+" var3= "+var3+" Var4 "+var4)
答案 0 :(得分:3)
使用:
var min = parseInt(prompt("Enter Min value:"), 10);
var max = parseInt(prompt("Enter max value:"), 10);
问题是这些变量包含字符串,因此包含+
的表达式正在执行字符串连接而不是数字添加。
在你学习的同时,养成用;
结束陈述的习惯。 Javascript关于要求这个问题是松懈的,但你应该明确它 - 分号可以省略的规则有点神秘。
答案 1 :(得分:0)
var1
,var2
,var3
等不是好的变量名。不要使用它们。
您的代码无效,因为prompt
返回一个字符串。 1 - "2"
为-1
,但1 + "2"
为"12"
,因为加法运算符用于字符串连接。
将字符串解析为整数:
var min = parseInt(prompt("Enter Min value:"), 10);
答案 2 :(得分:0)
prompt
返回string
,因此您需要将min
和max
转换为number
:
var min = Number(prompt("Enter Min value:"));
var max = Number(prompt("Enter max value:"));