• for循环使用var和let的区别


    for(var i=0;i<5;i++){       

         setTimeout(function() {
            console.log(i);
         }, 0)

    }
    // 结果 5 5 5 5 5
    for(let i=0;i<5;i++){

         setTimeout(function() {
            console.log(i);
         }, 0)

    }
    // 结果 0 1 2 3 4

    由于 var 命令的变量提升机制,var 命令实际只会执行一次。

    let 命令不存在变量提升,所以每次循环都会执行一次,声明一个新变量(但初始化的值不一样)。

    for 的每次循环都是不同的块级作用域,let 声明的变量是块级作用域的,所以也不存在重复声明的问题。

    let生命变量的for循环里,每个匿名函数实际上引用的都是一个新的变量

  • 相关阅读:
    通过异常处理错误-2
    通过异常处理错误-1
    线程池
    Synchronized
    持有对象-4
    持有对象-3
    持有对象-2 迭代器深入理解
    ServletContextListener
    持有对象-1
    行为参数化
  • 原文地址:https://www.cnblogs.com/150536FBB/p/10676444.html
Copyright © 2020-2023  润新知