我读到 ES6 已经发布并且很多 Web 浏览器都支持它,我想现在我是否可以在最新版本的 node.js 和 js 框架(如 angular.js 或 react)中使用 ES6 特性和语法开箱即用。 js ?
最佳答案
是的,Node/IO.js 可以开箱即用地使用 ES6,但今天的支持仍然有限。正如 Felix King 所指出的,您可以在以下位置查看部分支持:
要在 Node.js 中启用 ES6 功能,您可以使用 harmony
参数运行 node,但请注意,它同时启用了稳定和不稳定的功能:
node --harmony app.js
如果您使用 IO.js,默认情况下包含最稳定的 ES6 功能,但是它们也有
harmony
参数,可以启用 ES6 的附加暂存和正在进行的功能,所以最重要的是 IO.js 为您提供开箱即用的稳定 ES6 ,但您可以使用 harmony
参数获得其他内容。iojs --harmony app.js
由于 Node/IO.js 中的 ES6 支持仍然是部分的,要在 Node 中获得完整的 ES6 支持,您应该使用 转换器 。
对于 Angular 和 React,要在所有浏览器中获得对主要内容(类、箭头函数等)的 ES6 支持,您必须使用 Transpiler,并且您有很多选择。一些最受欢迎的是 TypeScript 、 Babel 和 Traceur 。
这些之间有很多区别,这取决于您想要什么。如果你想要纯 ES6/ES7 支持,我会选择 Babel 。如果您想要可选类型和附加功能(例如泛型),您应该使用 TypeScript 。
然而,Babel 拥有当今最好的工具,我会在前端(Angular/React)和后端(Node)都坚持使用它。
如果您有兴趣阅读有关 Transpilers 需求的更多信息,请阅读:
http://www.ministryofprogramming.com/typescript-is-the-new-javascript/
关于javascript - node.js 和 JS 框架可以开箱即用地使用 ES6 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31578807/