JavaScript 中 let 是不是比 var 好?

如题,是各有优点吗?还是淘汰关系?

阅读 5.5k
8 个回答

我认为是淘汰关系

let 的特点

  1. 块级作用域(var function 回调的都是最后一次)
  2. 声明前不可以使用(undefined)

es6+ let好
es5 只有var

能用let就用let

因为let作用域更清晰

我认为是淘汰关系
es6中let的出现的原因就是为了解决使用var中的问题,例如全局污染、变量提升问题
通过babel将es6转义是因为浏览器对es6的适配程度还不是很高

let 和 const 只是语法糖,最终都变成var了

它不是好不好的问题,它是那种很特别的...

好了不扯了。原则上es5只能用 var,能上es6的就只用 letconst,起码能避免你很多看不到的bug

我觉得比var要好,var可以重复声明变量,像我这样词穷的,一不小心就可能声明两个一样的变量名,又不直接报错,而且let还没有提升之内的操作,不需要考虑那么多

let 和 const 是ES6的语法,而现在并不是所有用户都是使用最新的浏览器,而老的浏览器只支持ES5的var,var的缺陷我们完全可以自己避免,就当下而言,我们可以使用ES6的语法开发,避免一些错误,然后转化成ES5语法兼容。

let 最终也是转成 「ES5」 的 var,所以淘汰关系是不存在的,因为完全可以用 var 实现 let 的效果,个人看法 let 可以看作类似语法糖的存在,就好像 async awaitgenenrate iterator。而各有优点,这个要看理解的角度。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题