for循环bug
发布于 6 年前 作者 yong30 2235 次浏览 来自 问答

在js文件写for循环,如下的形式:

for (let i = i;i<5;i++){
    console.log(i)
}

不会报错。

按照道理,他会运行报错,报一个ReferenceError的错误。

我因为翻译Java代码为js代码无意写错发现的。

4 回复

兄得!你这个怎么可能会执行呢

我来回答一下吧 开发者工具使用的babel 将es6 转 es5

这行代码转义成为

for (var i = i; i<5; i++){
    console.log(i);

}

在javascript解析中,var i = i 由于i没有声明,会在全局声明一个i并赋值为undifined,在for 循环中,由于i为undifined,undifined 和数字比较为false,所以既不进循环也不报错

你确定进入for循环了吗

回到顶部