首页 > 其他 > 详细

ES6中 let 和 var 的区别

时间:2020-03-14 12:16:19      阅读:58      评论:0      收藏:0      [点我收藏+]
$(function(){
  var j = 0
            for(let i=0;i<2;i++,j++){
                setTimeout(function(){
                    console.log(i,j)
                },1000)
            }
                
})        
输出: 0 2 ,1 2

setTimeout(func,time)函数,延迟运行函数.将func函数添加到“执行队列”中,当主程序完成后,再按照执行队列运行.

let 是块级作用域,每次for 循环把定义的i 会保存在闭包函数(setTimeout()中的函数)中,所以每次打印都是不同的值;var 定义的 j 在for循环的外面,for 循环执行完,j 已经变成 2,所以每次打印出来都是2

 

$(function(){
  let j = 0
            for(let i=0;i<2;i++,j++){
                setTimeout(function(){
                    console.log(i,j)
                },1000)
            }
                
})        
输出: 0 2 ,1 2

 同上,虽然j 是用 let 定义的,但是for 循环执行完,依然变成 2

$(function(){
  let i, j = 0
            for(i=0;i<2;i++,j++){
                setTimeout(function(){
                    console.log(i,j)
                },1000)
            }
                
})        
输出: 2 2 ,2 2

 此时 i 和 j 都定义在for 循环外面,打印出来都是 2

$(function(){
  var j = 0
            for(let i=0;i<2;i++,j++){
                setTimeout(function(){
                    console.log(i,j)
                },1000)
            }
                
})        
输出: 0 2 ,1 2

ES6中 let 和 var 的区别

原文:https://www.cnblogs.com/lk-food/p/12490964.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!