循环中的let和const声明

Posted 星空0909

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环中的let和const声明相关的知识,希望对你有一定的参考价值。

一、循环中的let声明

       每次循环的时候let声明都会创建一个新变量i,并将其初始化为i的当前值,所以循环内部创建的每个函数都能得到属于他们的i的副本。

     最初的:

     for (var i = 0 ; i < 10 ; i++) {
   array.push(function(){
       console.log(i)
   }) 
  };
    array.forEach(function(func){
         func()
    })

    优化后:

   var array=[];
   for (var i = 0 ; i < 10 ; i++) {
       array.push(function(value){
            return function(){
                 console.log(value)
            }
       }(i))
    };
    array.forEach(function(func){
        func()
    })

 

但是用了let更方便

 var array=[];

for (let i = 0 ; i < 10 ; i++) {
   array.push(function(){
       console.log(i)
   }) 
  };
    array.forEach(function(func){
         func()
    })

 

二、循环中的const声明

   const属于常量定义,一经定义不能修改,在上述例子中,不可以用const,否则完成第一次迭代,就会抛出错误,但是可以用for  in,for  of语句的,与let用法一样

   之所以能用,主要还是因为每次迭代不会修改已有的绑定,而是会创建一个新绑定。

以上是关于循环中的let和const声明的主要内容,如果未能解决你的问题,请参考以下文章

ES6+ 学习 ----- let 和 const 在for 循环中的使用

let和const在es6中的异同点

三. var let const的理解 以及 立即执行函数中的使用 以及 for循环中的例子

小程序里let和var以及const区别

微信小程序var和let以及const的区别:

请问微信小程序let和var以及const有什么区别