为啥 Node.js 通常使用 'var' 而不是 'let'?

Posted

技术标签:

【中文标题】为啥 Node.js 通常使用 \'var\' 而不是 \'let\'?【英文标题】:Why does Node.js commonly use 'var' instead of 'let'?为什么 Node.js 通常使用 'var' 而不是 'let'? 【发布时间】:2020-01-16 22:51:45 【问题描述】:

基本上我在 Node.js 上看过的每个教程,甚至 express 生成器的所有变量都使用 var 而不是 let 声明?根据我在 javascript.info 中学到的知识,let 应该是标准,除非是非常特殊的情况。

【问题讨论】:

const 应该是首选,除非在需要重新分配变量的特殊情况下。 let 不太好 - 在 good 代码中,它是对代码读者的警告,它是一个稍后将被重新分配的变量(并且在不必要时应避免重新分配,因为它让代码一目了然更难理解) 与其在不知道原因或效果的情况下假设有某种标准,不如去研究不同关键字的作用,然后每次声明一个变量时,使用最适合的情况 与 Node.js 无关,但有时文档只是陈旧的,并且更改诸如此类的小细节(对文档本身没有太大影响)只是很多工作,几乎没有改进. 没有充分的理由表明最近编写的任何代码体大部分或完全使用var,除非他们试图保持与旧 JS 引擎的兼容性。可能只是旧代码。 原因是那里有很多旧教程。关于 Express 生成器,他们希望支持 Express 4 支持的 Node 版本。 github.com/expressjs/generator/issues/167 【参考方案1】:

这是因为 Node.JS 代码是用 ES5 编写的,不支持使用 let 和 const。如果您仍然希望在 ES6 中编写代码,则需要使用 Babel 来帮助 Node.JS 将 ES6 代码转换为 ES5。但是你绝对可以在 Node.js 中使用 let 和 const。我希望答案有帮助。

请参阅下面的链接以获得深入的解释。 https://dev.to/dhruv/writing-es6-in-your-nodejs-applications-33jk

【讨论】:

在什么情况下Node只支持ES5?当我在 ES6 中编写代码(例如使用const)然后使用例如node script.js 运行它时,它运行得很好。 let 从 Node 版本 6 开始可用:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。

以上是关于为啥 Node.js 通常使用 'var' 而不是 'let'?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我应该使用 gRPC 而不是 IPC / Simple websocket?

为啥使用 var 而不是类名? [复制]

为啥不能在 ngFor 中使用 var 而不是 let

为啥在 Swift 中使用“let”而不是 var?

为啥许多javascript示例仍然使用'var'而不是'const'和'let'? [关闭]

为啥 node.js 是异步的?