我正在查看朋友所做的一些代码并偶然发现了这一行,我认为这是一个错误(例如简化)..
for (g = 0; 10 > g; g++); {
alert(g);
}
然而它仍然执行,并警告“10”。为什么是这样?这是javascript中的专用功能吗?
答案 0 :(得分:4)
您的g
变量位于全局上下文中,因此可以在for
循环之外访问它。
循环完成了它的工作,并增加了g
10次。
两个{}
表示JavaScript中的一个块,不会导致任何错误。
修改:没有for
循环,它没有提醒任何内容,因为g
变量未定义。
答案 1 :(得分:2)
半冒号实际上运行没有{}代码块的循环。所以你的代码基本上有2个部分,
variable g
更新为0到10,g
(现在等于10)一次。答案 2 :(得分:1)
你的for循环运行了10次,但是因为放了;
由于for循环之外的语句
,您获得的警报只有一次答案 3 :(得分:-2)
据我所知,这只是该语言的语法功能。基本上,javascript忽略了分号。
编辑:抱歉,误读了你的帖子。如果你的意思是你只收到一次警报,那么你基本上是一个执行十次的空循环,然后是一个包含执行一次警报的代码块。Accolades({...})可以绕过任何代码块,与for循环等构造无关。