仅适用于某些数字,但当我尝试插入3-10时不工作,例如。我不知道怎么了。我还在学习Javascript。对不起,我的英语不好。谢谢你
let btn = document.getElementById("btn")
let msg = document.getElementById("avvisi")
btn.addEventListener("click", () => {
let primo = document.forms['modulo']['primonum'].value
let secondo = document.forms['modulo']['secondonum'].value
for (let i = primo; i <= secondo; i++) {
console.log(i * i)
}
})
<form id="modulo">
inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum">
<input type="button" id="btn" value="go">
</form>
您需要将字符串从输入转换为数字。最短的方法是在表达式前使用一元加+
。
let btn = document.getElementById("btn");
let msg = document.getElementById("avvisi");
btn.addEventListener("click", () => {
let primo = +document.forms['modulo']['primonum'].value
let secondo = +document.forms['modulo']['secondonum'].value
for (let i = primo; i <= secondo; i++) {
console.log(i * i);
}
});
<form id="modulo">
inizio <input type="text" id="primonum"> fine <input type="text" id="secondonum">
<input type="button" id="btn" value="go">
</form>
primo
和secondo
是字符串,因为它们来自一个输入。因此,当您将i
设置为primo时,i
也是一个字符串。当比较& 3"到"10","3";大于"10";因为它们的unicode值,它跳过循环,因为在这种情况下i <= secondo
为假。做i*i
只能与数字一起工作,所以javascript把它们变成数字,它工作。解决方案是将字符串直接转换为数字。
let primo = Number(document.forms['modulo']['primonum'].value);
let secondo = Number(document.forms['modulo']['secondonum'].value);
或
let primo = +document.forms['modulo']['primonum'].value;
let secondo = +document.forms['modulo']['secondonum'].value;