我正在查看一个朋友所做的一些代码,并偶然发现了这一行,我认为这是一个错误(例如简化了)..
for (g = 0; 10 > g; g++); {
alert(g);
}
但是它仍然执行,并警告“10”。为什么是这样?这是javascript中专门构建的函数吗?
我正在查看一个朋友所做的一些代码,并偶然发现了这一行,我认为这是一个错误(例如简化了)..
for (g = 0; 10 > g; g++); {
alert(g);
}
但是它仍然执行,并警告“10”。为什么是这样?这是javascript中专门构建的函数吗?
您的g
变量在全局上下文中,因此它可以在for
循环之外访问。循环完成了它的工作,并增加了g
10 次。
两个{}
表示 JavaScript 中的块,不会导致任何错误。
编辑:它不会在没有for
循环的情况下发出任何警报,因为g
未定义变量。
分号实际上运行没有 {} 代码块的循环。所以你的代码基本上有两部分,
variable g
到从 0 到 10,g
(现在等于 10)。你的 for 循环运行了 10 次,但自从你放了;
由于for循环之外的语句,您收到的警报只有一次
据我所知,这只是该语言的一个语法特性。基本上,javascript 会忽略该分号。
编辑:对不起,误读了您的帖子。如果您的意思是您只收到一次警报,那么您基本上有一个空循环执行十次,然后包含执行一次警报的单个代码块。
Accolades ({...}) 可以绕过任何代码块,与 for 循环等结构无关。