2

我正在查看一个朋友所做的一些代码,并偶然发现了这一行,我认为这是一个错误(例如简化了)..

for (g = 0; 10 > g; g++); {

    alert(g);
}

但是它仍然执行,并警告“10”。为什么是这样?这是javascript中专门构建的函数吗?

JS小提琴

4

4 回答 4

4

您的g变量在全局上下文中,因此它可以在for循环之外访问。循环完成了它的工作,并增加了g10 次。
两个{}表示 JavaScript 中的块,不会导致任何错误。

编辑:它不会在没有for循环的情况下发出任何警报,因为g未定义变量。

于 2013-08-27T11:35:38.880 回答
2

分号实际上运行没有 {} 代码块的循环。所以你的代码基本上有两部分,

  1. 分 10 步更新variable g到从 0 到 10,
  2. 打印一次g(现在等于 10)。
于 2013-08-27T11:34:43.070 回答
1

你的 for 循环运行了 10 次,但自从你放了;

由于for循环之外的语句,您收到的警报只有一次

于 2013-08-27T11:35:05.600 回答
-2

据我所知,这只是该语言的一个语法特性。基本上,javascript 会忽略该分号。

编辑:对不起,误读了您的帖子。如果您的意思是您只收到一次警报,那么您基本上有一个空循环执行十次,然后包含执行一次警报的单个代码块。

Accolades ({...}) 可以绕过任何代码块,与 for 循环等结构无关。

于 2013-08-27T11:33:36.903 回答