那些样本里为什么用 const 和 var 不用 let?

新手上路,请多包涵

学 js 的过程里经常会看一些样本,比如 node 库文件,比如 express、koa 脚手架生成的项目,会发现页头上都是用 var 或者 const 来定义引入的变量,几乎没有用 let 的,跟我想的不一样啊!用 var 还能理解,为什么要用 const 呢?明显比 let 多敲两下键盘,难道和 let 有区别?我就一菜鸟,谁给说说?!

阅读 6.5k
4 个回答

从ES6的角度来说的话,有些值不需要更改的变量应该用const声明,而不是let,因为后者会报 eslint 的警告。

这个属于历史遗留问题。

直到现在,在 nodejs/npm 源码里面依然存在这大量的 var,也有很多的开发者们提了大量的 issues 和 PRs 试图移除这些历史遗留代码,但毫无例外的都被 nodejs 的维护者关闭了,理由就是:“目前这些代码运行的非常好,而且目前低版本 nodejs 的下载量也非常高。如果直接替换到 let/const 面临的风险比较大,然而没有明显的证据表明 let 一定比 var 性能高”。而维护者的态度是:“新添加的功能使用 es6+ 语法,当修改了原功能时,可以将此功能使用 es6 语法重构”。

let变量,const常量,var最好不要用。他们用可能是为了考虑兼容性,或者就是干脆懒得改

let,const的暂时性死区,使得在当前作用域,在变量声明之前访问变量,是无法访问到的,没有变量提升,能减少代码中的隐藏bug。按照对应的特性来说,习惯对于块作用域内的变量使用let,常量使用const。
对于页头来说,使用let,const,var作用域上可能没有大的区别,commonjs规范中每个模块都是一个独立的作用域。
使用var的原因可能是希望当前这个变量做出类型上的改变,而又想在低版本环境能顺利运行...

maybe...只要不出bug,用啥都行

https://blog.techbridge.cc/20...[從 V8 bytecode 探討 let 與 var 的效能問題]

推荐问题