# let 不可同一作用域中重复声明,var 可以

报错:

let a = 1 ; 
let a = 2 ; 

不报错:

var a = 1 ; 
var a = 2 ; 

# let会参与预解析,var会预解析

报错:

console.log(a);
let a = 1 ; 

不报错:

console.log(a);
var a = 1; 

# let 在块级作用域内有效,var在函数作用域内有效

function test() {
let a = 1; 
var b = 2 ; 
if(true){
	let a =  5 ;
	var b = 6 ; 
}
console.log(a);
console.log(b);
}
test();


# let 的作用?

总之呢,let从规范化的角度来说,要比var要进步了很大一步。

所以一般情况下的话,<mark>推荐用let,const这些。当然啦,如果相对var,const和let有更深入的了解</mark>

推荐几篇小文章,这样你就会对其相关知识点有更加深入的了解了。