let 和 var的区别

240 阅读1分钟

作用域

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