【发布时间】:2019-02-01 18:11:28
【问题描述】:
假设我正在编写一个 NodeJS 项目,其语言可以编译为 JavaScript,例如 TypeScript。使用 TypeScript(或其他使用 Babel 的东西)我可以选择将我的代码编译为任何版本的 JavaScript,无论是 ES3、ES5、ES6、ES2017 等。
显然,如果我在客户端编写一些东西,我会坚持使用早期版本,例如 ES5,以保持对用户的兼容性。但是,由于我正在专门为最新版本的 NodeJS 编写服务器端的东西,所以我可以使用这些选项中的任何一个。我想知道的是,我应该使用哪个版本来帮助提供最佳性能?
NodeJS 的解释器 V8 根据源代码的编写方式提供不同的优化,所以我想选择其中一个可能会带来不同的好处。一方面,您会认为选择旧版本的 JS 会更好,因为它存在的时间更长并且有更多时间进行优化。另一方面,编译到更高版本的 JS 会产生明显更简洁的代码,并且依赖于更新的可用功能,这也可能会有所帮助。
任何想法/反馈将不胜感激!
【问题讨论】:
-
哪个nodejs? LTS 还是电流? - 编译成你使用的任何 nodejs(真的很简单)
-
当一个特性必须转换为旧版本的 JavaScript 时,它的行为往往会以微妙的方式有所不同。尽可能使用最新版本以避免奇怪。
-
“我应该使用哪个版本来帮助提供最佳性能?” — 当您对 您的 代码进行基准测试时,它会提供最佳性能。
-
我真的怀疑转译到旧版本会带来更好的性能。 (除了那些 babel 无法复制正确语义并选择更简单的东西的情况 - 但你真的想要新语义)
标签: javascript node.js typescript v8 transpiler