我今天(通过艰难的方式)发现 JavaScript 允许这样做,而不会产生任何错误:
for(var i = 0; i < 100; ++i){
/* do some stuff */
for(var i = 0; i < 200; ++i){
/* do some more stuff */
}
}
i
我偶然为两个循环使用了相同的标识符。
JavaScript 编译器/解释器不会产生错误(如 Java),也不会创建一个不同的变量来隐藏外部循环上的变量(如 C++)。它们引用同一个变量,所以外循环只会运行一次!
为什么会这样?这种行为在任何情况下都有用吗?