1、var与let的区别:
(1)使用var可以重复声明变量,而let不可以
let a = 10;
let a = 20;
console.log(a); //使用let重复声明变量报错,如下
//Uncaught SyntaxError : Identifier 'a' has already been declared
(2)var的作用域:全局作用域与函数作用域(局部作用域)
let的作用域:全局作用域与块级作用域(大括号包着的区域-相当于局部作用域)
{
let x = 3;
console.log(x);
}
console.log(x); //这里已经超出块级作用域的范围,会报错,如下
//Uncaught ReferenceError : 'x' is not defined
(3)var可以预解析(变量提升),而let不可以,它严格遵守先声明后使用
//Uncaught ReferenceError : Cannot access 'a' berfore i