var与let的区别
1、var是函数作用域,而let是块作用域。
在函数内声明了var,整个函数内都是有效的,在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问的。
而let由于是块作用域,所以如果在块作用域内(for循环内)定义的变量,在其外面是不可被访问的。
2、如果在全局作用域中用var声明变量,此变量会默认成为window的一个属性,let声明的变量则不会添加到window对象中。
3、var声明的变量有变量提升特性,let声明则没有这个特性。
4、var可以允许重复声明相同的变量,后者会覆盖前者,let则不能重复声明相同的变量。