Javascript 奇怪的延迟错误

Javascript 奇怪的延迟错误,javascript,html,Javascript,Html,所以,我用html编写了一个程序,可以将任何十进制数转换成二进制数,这个程序工作得很好,然后我试图修改它,不知怎么搞砸了。问题似乎是它在运行时开始时获取值,而不是总是在此时获取值,但它以前没有这样做。而且,我不知道它为什么这样做,我甚至不完全确定我会查找什么来查找这种错误,特别是当我不知道什么是错误的时候 <!DOCTYPE html> <html> <head> </head> <body> &

所以,我用html编写了一个程序,可以将任何十进制数转换成二进制数,这个程序工作得很好,然后我试图修改它,不知怎么搞砸了。问题似乎是它在运行时开始时获取值,而不是总是在此时获取值,但它以前没有这样做。而且,我不知道它为什么这样做,我甚至不完全确定我会查找什么来查找这种错误,特别是当我不知道什么是错误的时候

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <input type = "number" id = 'decimal'></input><br/>
        <a id = 'binary'></a>
        <script>
            setInterval(convert(),1);
            function convert() {
                var nNum = "";
                var num = document.getElementById('decimal').value;
                while(num != 0) {
                    nNum = (num % 2) + nNum;
                    num = Math.floor(num/2);
                }
                document.getElementById('binary').innerHTML = nNum;
            }
        </script>
    </body>
</html> 


setInterval(convert(),1); 函数转换(){ var nNum=“”; var num=document.getElementById('decimal')。值; while(num!=0){ nNum=(数值%2)+nNum; num=数学楼层(num/2); } document.getElementById('binary')。innerHTML=nNum; }
非常感谢您的任何帮助。c:

试试:

<script>
    setInterval(convert,1);
    function convert() {
        var nNum = "";
        var num = document.getElementById('decimal').value;
        while(num != 0) {
            nNum = (num % 2) + nNum;
            num = Math.floor(num/2);
        }
        document.getElementById('binary').innerHTML = nNum;
    }
</script>   

设置间隔(转换,1);
函数转换(){
var nNum=“”;
var num=document.getElementById('decimal')。值;
while(num!=0){
nNum=(数值%2)+nNum;
num=数学楼层(num/2);
}
document.getElementById('binary')。innerHTML=nNum;
}

当您将函数作为函数的参数传递时,您不调用它
convert()
,只传递它
convert

应该是
setInterval(convert,
而不是
setInterval(convert()),…
Related:好的。这就解决了问题。奇怪的是,它以前是用那个代码工作的。是的。就像另一个人说的。我觉得很奇怪,因为上次我用“convert()”时它工作了@JoshuaReid如果一个答案解决了你的问题,你应该接受它,所以问题被标记为已回答。好的。是的。对不起。^其他人在评论中回答了,所以我没有能力这样做。