在ES6引入let关键字之前,变量都是用var声明变量的。那let与var的不同点是什么呢
相同:都是可以变量声明。
不同点:
① let : 使用let声明变量,变量只在声明之后才存在。
var: 使用var声明变量,变量在当前作用域中的任何地方都可用,甚至可以在声明前使用。
原因:var声明的变量采用了提升机制,JavaScript会扫描函数或全局作用域,任何使用var声明的变量都会被提升至作用域的顶部。重点是,被提升的变量声明,而不是赋值。
② 使用var声明的变量,JavaScript不会关心它是否有重复声明。