作用域
let是使用区块作用域;var是使用函数作用域。
{
var a =10
};console.log(a)
//undefined
{
let b =10
};console.log(b)
//Uncaught ReferenceError: b is not defined
变量提升
let在声明之前如果访问这个变量会抛出ReferenceError错误;但是var声明之前就访问会抛出undefined。
console.log(a);
var a =5 //undefined
console.log(b);
let b= 5 //Uncaught ReferenceError: b is not defined
重复声明
let重复声明会直接报错 Identifie;var是可以的。
let c =10;
let c = 11
//Uncaught SyntaxError: Identifier 'c' has already been declared
var f=10;
var f=11;
console.log(f)// 11