我使用 Javascript 的第一天,我非常困惑。我将从表单返回的数字传递给函数,但结果与应有的不一致。我的测试还有很多不足之处,但希望以下内容有意义。
该函数g
计算序列的总和。
<form name="gaussform">
<input name="min"
type="number"
min="1"
value="1">
<input name="max"
type="number"
min="2"
value="10">
<input name="step"
type="number"
min="1"
value="1">
<input onclick="alert_g()"
type="submit"
value="calculate">
</form>
<script type="text/javascript">
function g(min,max,step) {
var actualmax = max - ((max - min) % step)
return (min + actualmax) * ((1 + ((actualmax - min) / step)) / 2)
}
function alert_g() {
var frm = document.forms["gaussform"]
var min = frm["min"].value
var max = frm["max"].value
var step = frm["step"].value
if (min == 1) {
alert("min is 1")}
if (max == 10) {
alert("max is 10")}
if (step == 1) {
alert("step is 1")}
alert(g(min,max,step))
// below returns the desired result
alert(g(1,10,1))}
</script>
if 语句只是为了让我能理解发生了什么!
因此,如果用户输入 1,10,1(默认值),结果应该是 55。
alert(g(1,10,1))
-> 55
alert(g(min,max,step)
-> 550
alert(g(1,100,2))
-> 2500
alert(g(min,max,step)
-> 4975(显然 min,max,step == 1,100,2)
该函数g
是正确的,但我不明白传递给它的值发生了什么。