美文网首页
for循环打印循环索引为什么是循环结束后得值?

for循环打印循环索引为什么是循环结束后得值?

作者: 没事走两步有事跑两步 | 来源:发表于2020-11-08 09:27 被阅读0次

1.个人理解:

  • 作用域
    • var 编译阶段变量提升 提升到外层作用域
    • javascript{}限制作用域 而()并不限制作用域
    • 所以在for(var i = 0) 运行得前(编译阶段) 外层就存在一个 var i = undefined
    • 但我们使用for(let i = 0)时 一切安好,正时因为let是块级作用域 而var则是全局作用域
    for (var key in {
                name: 'lisi',
                age: '20'
            }) {}
        console.log(key) // 打印出 age 同理
for (let key in {
                name: 'lisi',
                age: '20'
            }) {}
        console.log(key) // 打印出
      // Uncaught ReferenceError: key is not defined
     // let 声明得变量被限制在了块级作用域内

相关文章

网友评论

      本文标题:for循环打印循环索引为什么是循环结束后得值?

      本文链接:https://www.haomeiwen.com/subject/zpwcbktx.html