JavaScript中var与let的区别

var可以实现变量提升

//定义提升
	console.log(e,window.e);
	var e=104;

//报错f未定义
	 console.log(f,window.f);
	let f=104;

let异步加载,var在执行完之后再运行

//异步加载 
for(let i=0;i<4;i++){
    
    
	setTimeout(function(){
    
    console.log("let "+i)},1000*i);
}

//先执行循环再timeout
for(var i=0;i<4;i++){
    
    
	setTimeout(function(){
    
    console.log("var "+i)},1000*i);
}

let定义的是局部变量,var定义的是全局变量

for(var i = 0;i<3;i++){
    
    
		let i ="love";
		console.log(i);

	}
	console.log(i);
	var a=100;
	console.log(a,window.a);

	let b=101;
	console.log(b,window.b);
	c=102;
	console.log(c,window.c);
if(1){
    
    
	//aa全局变量
	var aa=105;
	//bb局部变量
	let bb=106;
	//cc局部常量
	const cc=107;
}

//变量作用域
console.log(aa);
console.log(bb);
console.log(cc);
//let不能声明同名变量,var可以声明同名变量

猜你喜欢

转载自blog.csdn.net/p715306030/article/details/114656020