为什么推荐let而不是以前的var
现在很多编辑器在你使用var声明变量时,var下面会有浅色的波浪线提示,此时建议我们使用let来声明。为什么呢?(闲得无聊,码码字)
var 和let 的区别
因为var创建的变量是挂载在window顶级对象上面的,全局变量比较多的情况下通通都会挂载到window顶级对象上面,如果跟之前定义的对象重复则会改变之前定义的值,变量造成污染
- var可重复声明一个变量,(改变变量之前定义的值);
- let不可重复声明;
- var定义变量会默认为全局变量,let则不会;
- let作用域为块级,var会上升至函数级别;
- 闭包,即引用自由变量的函数,如果函数内存在var,该引用会被记住,在一些循环操作里变量发生变化,会造成麻烦;而let每次会产生新的引用
- 确保let在你的语法环境下允许被使用(es6语法)