如题,是各有优点吗?还是淘汰关系?
###我认为是淘汰关系
let 的特点
- 块级作用域(var function 回调的都是最后一次)
- 声明前不可以使用(undefined)
es6+ let好
es5 只有var
能用let就用let
因为let作用域更清晰
###我认为是淘汰关系
es6中let的出现的原因就是为了解决使用var中的问题,例如全局污染、变量提升问题
通过babel将es6转义是因为浏览器对es6的适配程度还不是很高
let 和 const 只是语法糖,最终都变成var了
###它不是好不好的问题,它是那种很特别的...
好了不扯了。原则上es5只能用 var
,能上es6的就只用 let
和 const
,起码能避免你很多看不到的bug
我觉得比var要好,var可以重复声明变量,像我这样词穷的,一不小心就可能声明两个一样的变量名,又不直接报错,而且let还没有提升之内的操作,不需要考虑那么多
###let 和 const 是ES6的语法,而现在并不是所有用户都是使用最新的浏览器,而老的浏览器只支持ES5的var,var的缺陷我们完全可以自己避免,就当下而言,我们可以使用ES6的语法开发,避免一些错误,然后转化成ES5语法兼容。
###let
最终也是转成 「ES5」 的 var
,所以淘汰关系是不存在的,因为完全可以用 var
实现 let
的效果,个人看法 let
可以看作类似语法糖的存在,就好像 async
await
和 genenrate
iterator
。而各有优点,这个要看理解的角度。