js中的let与var的区别实例

1. 简单需求

每隔一秒输出一个数字,javascript

2. 代码

  1. var 声明
var i=0;
	while(i<6){
		// 此处声明为var
		var index=i;
		setTimeout(function() {
			console.log('当前时间已通过去了'+index+'秒');
		}, 1000*(i++));
	}

输出结果:java

当前时间已通过去了6秒
当前时间已通过去了6秒
当前时间已通过去了6秒
当前时间已通过去了6秒
当前时间已通过去了6秒
当前时间已通过去了6秒
  1. let 声明
var i=0;
	while(i<6){
		// 此处声明为let
		let index=i+1;
		setTimeout(function() {
			console.log('当前时间已通过去了'+index+'秒');
		}, 1000*(i++));
	}

输出结果:es6

当前时间已通过去了1秒
当前时间已通过去了2秒
当前时间已通过去了3秒
当前时间已通过去了4秒
当前时间已通过去了5秒
当前时间已通过去了6秒
  1. 引伸(闭包方法)
for(var i=0;i<5;i++){
    (function(i){
        setTimeout(function(){
            console.log(i)
        },1000*i)
    })(i)
}

3 区别

  1. let针对块级做用域,var为函数级做用域或全局做用域
  2. 可参考阮一峰老师的ES6入门之let与const命令
相关文章
相关标签/搜索