我如何在 nodejs 中使用 ES7?
How can I use ES7 in nodejs?
如何在 nodejs 中使用 ES7 (ECMAScript 2016)?
我如何在生产中使用它?
在哪个版本的节点中,我不需要使用任何模块来执行此操作?
感谢任何帮助。
您需要使用 --harmony 标志,例如:
node --harmony server.js
有这个站点http://node.green/显示了不同版本的NodeJS与不同版本的ES标准的兼容性级别。
注意:这个问题明确是关于 ES2016 (ES7) 的。请参阅下面的 ES2017 (ES8) 更新。
ES7 只有两个主要特点:
Array.prototype.includes
**
(求幂运算符)
有关更多信息,请访问 Mozilla 开发网络:
- Web/JavaScript/Reference/Global_Objects/Array/includes
- Web/JavaScript/Reference/Operators/Arithmetic_Operators#Exponentiation_(**)
根据 node.green 这些在 Node 中可用,分别是因为:
- 5.0 有和谐标志和 6.0 没有标志 (Array.prototype.includes)
- 6.5 有和谐标志,7.0 没有标志(求幂)
参见:
- http://node.green/#ES2016-features-Array-prototype-includes
- http://node.green/#ES2016-features-exponentiation------operator
取幂是添加到 Node 的最后一个 ES7 功能,因此如果您想使用所有没有标志的 ES7 功能,那么您至少需要 Node 7.0。如果你可以使用 --harmony
标志,那么你至少可以使用 Node 6.5.
6.x 版本是 LTS(长期支持),因此您可能希望它优于 7.x,但您需要该标志才能使用 ES7 功能。
在撰写本文时,Node 的当前版本是:
- v6.10.3 LTS(推荐给大多数用户)
- v7.10.0 当前(最新功能)
v8.0 LTS 即将发布 - 目前您可以使用 Node 8.0 的夜间构建。
有关发布时间表的更多信息 - 请参阅:
要下载其他版本 - 请参阅:
ES2017 更新
回答评论中的问题,async/await 是 ES2017 (ES8) 的一个特性,而不是这个问题所涉及的 ES2016 (ES7)。参见:
- Specification: ECMAScript Latest Draft (ECMA-262) The definition of 'async function' in that specification.
- Status: Draft
- Comment: Initial definition in ES2017.
async/await 在节点
您可以在以下位置使用 async/await:
- 带有
--harmony
标志的节点 7.0
- 没有任何标志的节点 7.6
有关详细信息,请参阅:
在您没有原生支持 async
和 await
的地方,您可以使用 Babel:
或语法略有不同的基于生成器的方法,如 co
或 Bluebird 协程:
查看这些答案以获取更多信息:
- jQuery: Return data after ajax call success
它们包含有关兼容性和可能的解决方法的更多信息。
如何在 nodejs 中使用 ES7 (ECMAScript 2016)? 我如何在生产中使用它?
在哪个版本的节点中,我不需要使用任何模块来执行此操作?
感谢任何帮助。
您需要使用 --harmony 标志,例如:
node --harmony server.js
有这个站点http://node.green/显示了不同版本的NodeJS与不同版本的ES标准的兼容性级别。
注意:这个问题明确是关于 ES2016 (ES7) 的。请参阅下面的 ES2017 (ES8) 更新。
ES7 只有两个主要特点:
Array.prototype.includes
**
(求幂运算符)
有关更多信息,请访问 Mozilla 开发网络:
- Web/JavaScript/Reference/Global_Objects/Array/includes
- Web/JavaScript/Reference/Operators/Arithmetic_Operators#Exponentiation_(**)
根据 node.green 这些在 Node 中可用,分别是因为:
- 5.0 有和谐标志和 6.0 没有标志 (Array.prototype.includes)
- 6.5 有和谐标志,7.0 没有标志(求幂)
参见:
- http://node.green/#ES2016-features-Array-prototype-includes
- http://node.green/#ES2016-features-exponentiation------operator
取幂是添加到 Node 的最后一个 ES7 功能,因此如果您想使用所有没有标志的 ES7 功能,那么您至少需要 Node 7.0。如果你可以使用 --harmony
标志,那么你至少可以使用 Node 6.5.
6.x 版本是 LTS(长期支持),因此您可能希望它优于 7.x,但您需要该标志才能使用 ES7 功能。
在撰写本文时,Node 的当前版本是:
- v6.10.3 LTS(推荐给大多数用户)
- v7.10.0 当前(最新功能)
v8.0 LTS 即将发布 - 目前您可以使用 Node 8.0 的夜间构建。
有关发布时间表的更多信息 - 请参阅:
要下载其他版本 - 请参阅:
ES2017 更新
回答评论中的问题,async/await 是 ES2017 (ES8) 的一个特性,而不是这个问题所涉及的 ES2016 (ES7)。参见:
- Specification: ECMAScript Latest Draft (ECMA-262) The definition of 'async function' in that specification.
- Status: Draft
- Comment: Initial definition in ES2017.
async/await 在节点
您可以在以下位置使用 async/await:
- 带有
--harmony
标志的节点 7.0 - 没有任何标志的节点 7.6
有关详细信息,请参阅:
在您没有原生支持 async
和 await
的地方,您可以使用 Babel:
或语法略有不同的基于生成器的方法,如 co
或 Bluebird 协程:
查看这些答案以获取更多信息:
- jQuery: Return data after ajax call success
它们包含有关兼容性和可能的解决方法的更多信息。