为啥 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?