请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于for循环内let重复声明不报错的问题

老师,我想问下下面这段代码,为什么最后打印的是5个10,for的小括号里面已经定义了i,为什么在它后面的大括号里面还可以定义一个i,let不是不能重复声明么?

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

正在回答

1回答

for 循环体里面,不应该再用 let i 了,没有这么用的。

0 回复 有任何疑惑可以回复我~
  • 提问者 静雅3579601 #1
    我不知道当时面试官是想透过这个问题考察哪个知识点,为什么for循环里面的let i = 10没报错?不是同一个作用域么?还是什么?
    回复 有任何疑惑可以回复我~ 2019-12-18 11:32:47
  • 双越 回复 提问者 静雅3579601 #2
    我理解 for 循环的 { } 里面,应该是一个独立的作用域,let i = 10 就是这个作用域赋值的。不过这种考察方式,也是挺怪异的,感谢并没有什么实际意义。
    回复 有任何疑惑可以回复我~ 2019-12-18 23:07:13
  • 提问者 静雅3579601 回复 双越 #3
    好滴~谢谢老师耐心解答~ღ( ´・ᴗ・` )比心
    回复 有任何疑惑可以回复我~ 2019-12-19 17:15:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信