Javascript 语法错误:缺少;在陈述之前:试着做一个时钟

Javascript 语法错误:缺少;在陈述之前:试着做一个时钟,javascript,Javascript,我正在尝试用javascript制作一个简单的时钟。但出于某种原因,我一直在犯这个错误。据我所知,没有任何分号丢失。代码如下: function clockGen() { var time = new Date(); var hour = time.getHours(); var min = time.getMinutes(); var sec = time.getSeconds(); document.getElementById('time').innerHTML = hour + ":"

我正在尝试用javascript制作一个简单的时钟。但出于某种原因,我一直在犯这个错误。据我所知,没有任何分号丢失。代码如下:

function clockGen() {
var time = new Date();
var hour = time.getHours();
var min = time.getMinutes();
var sec = time.getSeconds();
document.getElementById('time').innerHTML = hour + ":" min + ":" + sec;
var refresh = setTimeout("clockGen()", 1000);
}

由于某种原因,它一直给我标题中显示的错误。你能告诉我正确的方向吗?

你的车缺了一个加号:

document.getElementById('time').innerHTML = hour + ":" min + ":" + sec;
相反,它应该是:

document.getElementById('time').innerHTML = hour + ":" + min + ":" + sec;

您没有缺少任何分号。但“缺少分号”的真正含义是“解释器找到了它认为是语句结尾的东西,但它没有分号。因此我不知道该如何处理这段代码。也许它应该是语句结尾,也许不是。因为作者没有明确说明,所以最安全的选择是抱怨并要求他们更清楚。”

选中此行:

document.getElementById('time').innerHTML = hour + ":" min + ":" + sec;
//                                                  ^^^^^^

你错过了一个
+
。好吧,我现在觉得自己很愚蠢。我将永远永远隐藏它也是一种很好的做法,不要将字符串与
setTimeout
setInterval
一起使用,因为这通常会导致无法预见的问题。因此,您应该将
setTimeout
更改为
var refresh=setTimeout(clockGen,1000)。这样做的原因是,如果您为它提供一个字符串,它将使用javascript中的
eval
方法,这通常是一种不好的做法!!