美文网首页
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