For loop 为什么这些代码会被卡住并且不';t工作(javascript)

For loop 为什么这些代码会被卡住并且不';t工作(javascript),for-loop,error-handling,addeventlistener,getelementbyid,For Loop,Error Handling,Addeventlistener,Getelementbyid,这个简单的代码让我疯狂。 它在任何浏览器或JSFIDLE中都不起作用。页面将不会响应,并且会被卡住 Html: 页面标题 第一个号码: 第二个号码: 增量: 点击 JS: document.getElementById(“btn”).addEventListener(“单击”,me); var first=document.getElementById(“fir”); var f=第一个值; var second=document.getElementById(“sec”); v

这个简单的代码让我疯狂。 它在任何浏览器或JSFIDLE中都不起作用。页面将不会响应,并且会被卡住

Html:


页面标题

第一个号码:

第二个号码:

增量:

点击
JS:

document.getElementById(“btn”).addEventListener(“单击”,me);
var first=document.getElementById(“fir”);
var f=第一个值;
var second=document.getElementById(“sec”);
var s=第二个值;
var inc=document.getElementById(“inc”);
var ic=公司价值;
var str=“”;
函数me(){

对于(var i=f;i如果在事件处理程序外部调用initialize'f=first.value',则不会为f分配任何值,因为代码是在加载页面时执行的,而不是在单击提交按钮后执行的。“s”和“ic”也是如此

这将解决问题:

function me(){
    var f = parseInt(first.value);
    var s = parseInt(second.value);
    var ic = parseInt(inc.value);
    for(var i = f; i <= s; i = i + parseInt(inc.value)) {
        str += i;
    }
    return document.write(str);
}
函数me(){
var f=parseInt(第一个.value);
var s=parseInt(第二个值);
var ic=parseInt(包括价值);

对于(var i=f;i是一个整数或字符串的.value?所有的.value都是整数,但也可能是浮点值。我有这个问题,然后我将其简化为这段代码,以便知道错误来自何处……因此,使用用户定义的增量从用户定义到用户定义的简单循环,但我很惊讶,当输入为fl时,这个parseInt没有问题oat?它会将值转换为整数。如果需要,您可以将所有内容都更改为parseFloat。好的,谢谢我将所有内容转换为parseFloat,我将搜索更多此类问题,我仍然是初学者,因此我很惊讶,sry我无法向上投票。再次感谢您
document.getElementById("btn").addEventListener("click", me);


var first = document.getElementById("fir");
var f = first.value;
var second = document.getElementById("sec");
var s = second.value;
var inc = document.getElementById("inc");
var ic = inc.value;

var str = "";

function me(){
    for(var i=f; i<=s; i=i+ic){

        str+=i;

    }
return document.write(str);}
function me(){
    var f = parseInt(first.value);
    var s = parseInt(second.value);
    var ic = parseInt(inc.value);
    for(var i = f; i <= s; i = i + parseInt(inc.value)) {
        str += i;
    }
    return document.write(str);
}